← back to Exo Keepalive
exo cluster keepalive: always-on launchd agent + portable node-bind script
a2f326340ba84a6119f48330b1400857688b0a40 · 2026-07-06 20:22:14 -0700 · steve
Files touched
A bind-exo-node.shA exo.logA launchd.err.logA launchd.out.logA run-exo.sh
Diff
commit a2f326340ba84a6119f48330b1400857688b0a40
Author: steve <steve@designerwallcoverings.com>
Date: Mon Jul 6 20:22:14 2026 -0700
exo cluster keepalive: always-on launchd agent + portable node-bind script
---
bind-exo-node.sh | 82 +
exo.log | 27444 +++++++++++++++++++++++++++++++++++++++++++++++++++++
launchd.err.log | 0
launchd.out.log | 0
run-exo.sh | 12 +
5 files changed, 27538 insertions(+)
diff --git a/bind-exo-node.sh b/bind-exo-node.sh
new file mode 100755
index 0000000..cdbd03d
--- /dev/null
+++ b/bind-exo-node.sh
@@ -0,0 +1,82 @@
+#!/usr/bin/env bash
+# bind-exo-node.sh — make THIS Mac Studio a permanent exo cluster node.
+# Portable: uses $HOME + the local user, so it works on any studio
+# (macstudio3 / stevestudio2 / steveabramsdesignsgmail.com / etc).
+# Run it ON the node you want to bind. Idempotent — safe to re-run.
+#
+# Steve's rule: the exo cluster is ALWAYS on. This installs a launchd
+# KeepAlive agent so exo (master+worker, API :52415) survives crash/logout/reboot
+# and auto-joins the LAN cluster via exo's zero-config peer discovery.
+set -uo pipefail
+
+USER_HOME="$HOME"
+UV="$(command -v uv || echo "$USER_HOME/.local/bin/uv")"
+EXO_DIR="$USER_HOME/exo"
+KA_DIR="$USER_HOME/Projects/exo-keepalive"
+PLIST="$USER_HOME/Library/LaunchAgents/com.steve.exo-keepalive.plist"
+UID_N="$(id -u)"
+
+echo "== binding exo node: user=$(whoami) home=$USER_HOME =="
+
+# 0. sanity
+[ -x "$UV" ] || { echo "!! uv not found ($UV). Install uv first: curl -LsSf https://astral.sh/uv/install.sh | sh"; exit 1; }
+[ -d "$EXO_DIR" ] || { echo "!! ~/exo not present. Clone it first: git clone <exo-repo> ~/exo"; exit 1; }
+
+# 1. dashboard build (exo hard-requires ~/exo/dashboard/build/index.html)
+if [ ! -f "$EXO_DIR/dashboard/build/index.html" ]; then
+ echo "== building dashboard (one-time; needs npm install/build) =="
+ ( cd "$EXO_DIR/dashboard" && npm install && npm run build ) || {
+ echo "!! dashboard build failed. If it's the npm allow-scripts gate, run:"
+ echo " cd ~/exo/dashboard && npm approve-scripts --all && npm run build"; exit 1; }
+else
+ echo "== dashboard already built =="
+fi
+
+# 2. keepalive runner (portable)
+mkdir -p "$KA_DIR"
+cat > "$KA_DIR/run-exo.sh" <<EOF
+#!/usr/bin/env bash
+set -uo pipefail
+export HOME="$USER_HOME"
+export PATH="$USER_HOME/.local/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
+cd "$EXO_DIR" || exit 1
+echo "[\$(date +%FT%T%z)] === exo start (pid \$\$) ===" >> "$KA_DIR/exo.log"
+exec "$UV" run exo >> "$KA_DIR/exo.log" 2>&1
+EOF
+chmod +x "$KA_DIR/run-exo.sh"
+
+# 3. launchd plist (portable paths)
+mkdir -p "$USER_HOME/Library/LaunchAgents"
+cat > "$PLIST" <<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0"><dict>
+ <key>Label</key><string>com.steve.exo-keepalive</string>
+ <key>ProgramArguments</key><array>
+ <string>/bin/bash</string><string>$KA_DIR/run-exo.sh</string>
+ </array>
+ <key>EnvironmentVariables</key><dict>
+ <key>HOME</key><string>$USER_HOME</string>
+ <key>PATH</key><string>$USER_HOME/.local/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
+ </dict>
+ <key>RunAtLoad</key><true/>
+ <key>KeepAlive</key><true/>
+ <key>ThrottleInterval</key><integer>15</integer>
+ <key>StandardOutPath</key><string>$KA_DIR/launchd.out.log</string>
+ <key>StandardErrorPath</key><string>$KA_DIR/launchd.err.log</string>
+</dict></plist>
+EOF
+
+# 4. (re)bootstrap
+launchctl bootout "gui/$UID_N/com.steve.exo-keepalive" 2>/dev/null || true
+launchctl bootstrap "gui/$UID_N" "$PLIST" 2>&1 || launchctl load -w "$PLIST" 2>&1
+launchctl kickstart -k "gui/$UID_N/com.steve.exo-keepalive" 2>/dev/null || true
+
+# 5. verify
+echo "== waiting for :52415 =="
+for i in $(seq 1 25); do
+ code=$(curl -s -o /dev/null -w "%{http_code}" -m3 http://localhost:52415/v1/models 2>/dev/null)
+ [ "$code" = "200" ] && { echo "✅ exo UP on $(hostname) :52415 — node bound, permanent across reboot"; exit 0; }
+ sleep 6
+done
+echo "⚠️ exo not up yet — check $KA_DIR/exo.log"; exit 1
diff --git a/exo.log b/exo.log
new file mode 100644
index 0000000..0d193a4
--- /dev/null
+++ b/exo.log
@@ -0,0 +1,27444 @@
+[2026-07-06T20:09:11-0700] === exo start (pid 31582) ===
+Downloading cpython-3.13.14-macos-aarch64-none (download) (24.0MiB)
+ Downloaded cpython-3.13.14-macos-aarch64-none (download)
+[2026-07-06T20:09:26-0700] === exo start (pid 31774) ===
+Using CPython 3.13.14
+Creating virtual environment at: .venv
+ Building exo-rs @ file:///Users/macstudio3/exo/rust/exo_rs
+ Building exo @ file:///Users/macstudio3/exo
+Downloading setuptools (1.1MiB)
+Downloading pygments (1.2MiB)
+Downloading rustworkx (1.9MiB)
+Downloading ruff (11.7MiB)
+Downloading playwright (39.1MiB)
+Downloading basedpyright (11.7MiB)
+Downloading pydantic-core (1.8MiB)
+Downloading openai-harmony (2.5MiB)
+Downloading hf-xet (3.4MiB)
+Downloading numpy (5.0MiB)
+Downloading transformers (9.9MiB)
+Downloading tokenizers (2.8MiB)
+Downloading nodejs-wheel-binaries (53.5MiB)
+ Downloaded pygments
+ Downloaded setuptools
+ Downloaded pydantic-core
+ Downloaded rustworkx
+ Downloaded openai-harmony
+ Downloaded tokenizers
+ Built exo @ file:///Users/macstudio3/exo
+ Downloaded hf-xet
+ Downloaded numpy
+ Downloaded transformers
+ Downloaded ruff
+ Downloaded basedpyright
+ Downloaded playwright
+ Downloaded nodejs-wheel-binaries
+ Built exo-rs @ file:///Users/macstudio3/exo/rust/exo_rs
+Installed 82 packages in 187ms
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:11:09-0700] === exo start (pid 35053) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:11:25-0700] === exo start (pid 35499) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:11:41-0700] === exo start (pid 38176) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:11:57-0700] === exo start (pid 40783) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:12:13-0700] === exo start (pid 41014) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:12:28-0700] === exo start (pid 42929) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:12:43-0700] === exo start (pid 48795) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:12:59-0700] === exo start (pid 52766) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:13:15-0700] === exo start (pid 52837) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:13:31-0700] === exo start (pid 53021) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:13:47-0700] === exo start (pid 53162) ===
+Traceback (most recent call last):
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 4, in <module>
+ from exo.main import main
+ File "/Users/macstudio3/exo/src/exo/main.py", line 17, in <module>
+ import exo.routing.topics as topics
+ File "/Users/macstudio3/exo/src/exo/routing/topics.py", line 5, in <module>
+ from exo.shared.election import ElectionMessage
+ File "/Users/macstudio3/exo/src/exo/shared/election.py", line 12, in <module>
+ from exo.shared.types.commands import ForwarderCommand
+ File "/Users/macstudio3/exo/src/exo/shared/types/commands.py", line 3, in <module>
+ from exo.api.types import (
+ ...<2 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/api/types/__init__.py", line 1, in <module>
+ from .api import AddCustomModelParams as AddCustomModelParams
+ File "/Users/macstudio3/exo/src/exo/api/types/api.py", line 8, in <module>
+ from exo.shared.models.model_cards import ModelCard, ModelId
+ File "/Users/macstudio3/exo/src/exo/shared/models/model_cards.py", line 23, in <module>
+ from exo.shared.constants import (
+ ...<4 lines>...
+ )
+ File "/Users/macstudio3/exo/src/exo/shared/constants.py", line 65, in <module>
+ find_dashboard() if _DASHBOARD_DIR_ENV is None else Path.home() / _DASHBOARD_DIR_ENV
+ ~~~~~~~~~~~~~~^^
+ File "/Users/macstudio3/exo/src/exo/utils/dashboard_path.py", line 37, in find_dashboard
+ raise FileNotFoundError(
+ "Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`"
+ )
+FileNotFoundError: Unable to locate dashboard assets - you probably forgot to run `cd dashboard && npm install && npm run build && cd ..`
+[2026-07-06T20:14:03-0700] === exo start (pid 53291) ===
+[ 08:14:06.4376PM | [1mINFO [0m] [1mpid = 53293[0m
+[ 08:14:06.4379PM | [1mINFO [0m] [1mEXO_ZENOH_NAMESPACE: None[0m
+[ 08:14:06.4545PM | [1mINFO [0m] [1mUsing ZID: 3962a17e4e64575e61bba645dcab7303[0m
+[ 08:14:06.4563PM | [1mINFO [0m] [1mStarting required plugin "storage_manager"[0m
+[ 08:14:06.9662PM | [1mINFO [0m] [1mStarting node 3962a17e4e64575e61bba645dcab7303[0m
+[ 08:14:07.1164PM | [1mINFO [0m] [1mStarting Election[0m
+
+╔═══════════════════════════════════════════════════════════════════════╗
+║ ║
+║ ███████╗██╗ ██╗ ██████╗ ║
+║ ██╔════╝╚██╗██╔╝██╔═══██╗ ║
+║ █████╗ ╚███╔╝ ██║ ██║ ║
+║ ██╔══╝ ██╔██╗ ██║ ██║ ║
+║ ███████╗██╔╝ ██╗╚██████╔╝ ║
+║ ╚══════╝╚═╝ ╚═╝ ╚═════╝ ║
+║ ║
+║ Distributed AI Inference Cluster ║
+║ ║
+╚═══════════════════════════════════════════════════════════════════════╝
+
+╔═══════════════════════════════════════════════════════════════════════╗
+║ ║
+║ Dashboard & API Ready ║
+║ ║
+║ http://localhost:52415 ║
+║ ║
+║ Click the URL above to open the dashboard in your browser ║
+║ ║
+╚═══════════════════════════════════════════════════════════════════════╝
+
+
+[ 08:14:07.1166PM | [1mINFO [0m] [1mStarting DownloadCoordinator[0m
+[ 08:14:07.1167PM | [1mINFO [0m] [1mStarting Worker[0m
+[ 08:14:07.1168PM | [1mINFO [0m] [1mStarting Master[0m
+[ 08:14:07.1169PM | [1mINFO [0m] [1mStarting API[0m
+[ 08:14:07.2280PM | [1mINFO [0m] [1mFirst run detected — opening dashboard in browser[0m
+[ 08:14:07.2302PM | [1mINFO [0m] [1mdiscovered: Some("3962a17e4e64575e61bba645dcab7303")[0m
+[ 08:14:07.2486PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319960>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319960>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319960>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319960>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:07.2556PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a9b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a9b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a9b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a9b0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10c01e200>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10c01c5e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:07.2681PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a1a0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a1a0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a1a0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a1a0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10c01da80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10c01d9e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:07.2738PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a500>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a500>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a500>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a500>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10c01e5c0>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10913cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10c01d940>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:14:07.2788PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a5f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a5f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a5f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a5f0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10c01dda0>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10913cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10c01db20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:14:07.2825PM | [1mINFO [0m] [1mNode elected Master - maintaining self[0m
+[ 08:14:07.2827PM | [1mINFO [0m] [1mUnpausing API[0m
+[ 08:14:07.2830PM | [1mINFO [0m] [1mRunning on http://0.0.0.0:52415 (CTRL + C to quit)[0m
+[ 08:14:07.2830PM | [1mINFO [0m] [1mRunning on http://0.0.0.0:52415 (CTRL + C to quit)[0m
+[ 08:14:07.2835PM | [1mINFO [0m] [1mSubscribed to global_events[0m
+[ 08:14:07.2836PM | [1mINFO [0m] [1mSubscribed to local_events[0m
+[ 08:14:07.2844PM | [1mINFO [0m] [1mSubscribed to commands[0m
+[ 08:14:07.2845PM | [1mINFO [0m] [1mSubscribed to election_messages[0m
+[ 08:14:07.2847PM | [1mINFO [0m] [1mSubscribed to connection_messages[0m
+[ 08:14:07.2851PM | [1mINFO [0m] [1mSubscribed to download_commands[0m
+[ 08:14:07.4796PM | [33m[1mWARNING [0m] [33m[1mmacmon preflight failed with return code 1: Error: Os { code: 2, kind: NotFound, message: "No such file or directory" }[0m
+[ 08:14:07.4798PM | [33m[1mWARNING [0m] [33m[1mmacmon at /opt/homebrew/bin/macmon is unusable, falling back to psutil memory monitoring[0m
+[ 08:14:07.4823PM | [1mINFO [0m] [1mWaiting for other campaign to finish[0m
+[ 08:14:10.4831PM | [1mINFO [0m] [1mNode elected Master - maintaining self[0m
+[ 08:14:10.4832PM | [1mINFO [0m] [1mUnpausing API[0m
+[ 08:14:12.2642PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319960>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319960>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319960>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319960>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:17.2708PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d632da0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d632da0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d632da0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d632da0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10c01e200>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10c01c5e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:17.3057PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319bd0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319bd0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319bd0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d319bd0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10c01da80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10c01d9e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:17.3264PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d69b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d69b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d69b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d69b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:22.3474PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69f8b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69f8b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69f8b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69f8b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:27.3113PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d7c10>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d7c10>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d7c10>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d7c10>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10c01e200>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10c01c5e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:27.3472PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a500>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a500>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a500>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d31a500>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10c01da80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10c01d9e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:27.3799PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d633b50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d633b50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d633b50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d633b50>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:32.4032PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d741330>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d741330>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d741330>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d741330>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:37.3518PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d633b50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d633b50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d633b50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d633b50>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10c01e200>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10c01c5e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:37.3871PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6339d0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6339d0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6339d0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6339d0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10c01da80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10c01d9e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:37.4353PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d631de0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d631de0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d631de0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d631de0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:42.4605PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d219390>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d219390>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d219390>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d219390>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:47.3880PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d743970>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d743970>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d743970>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d743970>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10c01e200>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10c01c5e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:47.4084PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6330a0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6330a0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6330a0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6330a0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10c01da80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10c01d9e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:47.4937PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69c2b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69c2b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69c2b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69c2b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:52.5180PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69c970>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69c970>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69c970>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69c970>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:57.4191PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d3dbaf0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d3dbaf0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d3dbaf0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d3dbaf0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10c01e200>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10c01c5e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:57.4548PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d6bf0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d6bf0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d6bf0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d6bf0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10c01da80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10c01d9e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:14:57.5410PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d632c50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d632c50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d632c50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d632c50>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:02.5691PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d7d90>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d7d90>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d7d90>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d7d90>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:07.2862PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d4fa0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d4fa0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d4fa0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d4fa0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10c01e5c0>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10913cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10c01d940>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:15:07.3142PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69fa90>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69fa90>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69fa90>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d69fa90>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10c01dda0>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10913cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10c01db20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:15:07.4608PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d431840>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d431840>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d431840>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d431840>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10c01e200>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10c01c5e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:07.4966PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d75e0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d75e0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d75e0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d75e0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10c01da80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10c01d9e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:07.6061PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x108af40e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10d189b20>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10d091580>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x108f94220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10d1fdd30>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10d25b420>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10d1c6a20>
+ │ └ <function Runner.run at 0x1092349a0>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10922e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10d43a0d0>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10922e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x109234040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1091c8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d4c40>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d4c40>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d4c40>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10d6d4c40>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10c01dd00>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10912ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10913d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x108f94ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x109237ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10922fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x109297380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x109298e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x109170b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:12.4060PM | [1mINFO [0m] [1mRotated event log: /Users/macstudio3/.exo/event_log/master/events.bin -> /Users/macstudio3/.exo/event_log/master/events.2026-07-07_03-15-12_402640.bin.zst[0m
+[ 08:15:12.4083PM | [1mINFO [0m] [1mStopping Worker[0m
+[ 08:15:12.4139PM | [1mINFO [0m] [1mRotated event log: /Users/macstudio3/.exo/event_log/api/events.bin -> /Users/macstudio3/.exo/event_log/api/events.2026-07-07_03-15-12_411809.bin.zst[0m
+[ 08:15:13.4068PM | [1mINFO [0m] [1mEXO Shutdown complete[0m
+[2026-07-06T20:15:13-0700] === exo start (pid 53967) ===
+[ 08:15:14.7405PM | [1mINFO [0m] [1mpid = 53977[0m
+[ 08:15:14.7407PM | [1mINFO [0m] [1mEXO_ZENOH_NAMESPACE: None[0m
+[ 08:15:14.7441PM | [1mINFO [0m] [1mUsing ZID: 5ebce362f8fe0ce4723a977e3b597712[0m
+[ 08:15:14.7447PM | [1mINFO [0m] [1mStarting required plugin "storage_manager"[0m
+[ 08:15:15.2539PM | [1mINFO [0m] [1mStarting node 5ebce362f8fe0ce4723a977e3b597712[0m
+[ 08:15:15.3144PM | [1mINFO [0m] [1mStarting Election[0m
+
+╔═══════════════════════════════════════════════════════════════════════╗
+║ ║
+║ ███████╗██╗ ██╗ ██████╗ ║
+║ ██╔════╝╚██╗██╔╝██╔═══██╗ ║
+║ █████╗ ╚███╔╝ ██║ ██║ ║
+║ ██╔══╝ ██╔██╗ ██║ ██║ ║
+║ ███████╗██╔╝ ██╗╚██████╔╝ ║
+║ ╚══════╝╚═╝ ╚═╝ ╚═════╝ ║
+║ ║
+║ Distributed AI Inference Cluster ║
+║ ║
+╚═══════════════════════════════════════════════════════════════════════╝
+
+╔═══════════════════════════════════════════════════════════════════════╗
+║ ║
+║ Dashboard & API Ready ║
+║ ║
+║ http://localhost:52415 ║
+║ ║
+║ Click the URL above to open the dashboard in your browser ║
+║ ║
+╚═══════════════════════════════════════════════════════════════════════╝
+
+
+[ 08:15:15.3146PM | [1mINFO [0m] [1mStarting DownloadCoordinator[0m
+[ 08:15:15.3147PM | [1mINFO [0m] [1mStarting Worker[0m
+[ 08:15:15.3149PM | [1mINFO [0m] [1mStarting Master[0m
+[ 08:15:15.3151PM | [1mINFO [0m] [1mStarting API[0m
+[ 08:15:15.3164PM | [1mINFO [0m] [1mdiscovered: Some("5ebce362f8fe0ce4723a977e3b597712")[0m
+[ 08:15:15.3261PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e10>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e10>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e10>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e10>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:15.3332PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5d20>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5d20>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5d20>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5d20>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:15.3402PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5c00>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5c00>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5c00>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5c00>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:15.3445PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5ba0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5ba0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5ba0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5ba0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10b821120>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10b8204a0>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:15:15.3491PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf54b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf54b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf54b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf54b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10b820900>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10b820680>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:15:15.3527PM | [1mINFO [0m] [1mNode elected Master - maintaining self[0m
+[ 08:15:15.3528PM | [1mINFO [0m] [1mUnpausing API[0m
+[ 08:15:15.3532PM | [1mINFO [0m] [1mRunning on http://0.0.0.0:52415 (CTRL + C to quit)[0m
+[ 08:15:15.3532PM | [1mINFO [0m] [1mRunning on http://0.0.0.0:52415 (CTRL + C to quit)[0m
+[ 08:15:15.3537PM | [1mINFO [0m] [1mSubscribed to global_events[0m
+[ 08:15:15.3545PM | [1mINFO [0m] [1mSubscribed to local_events[0m
+[ 08:15:15.3546PM | [1mINFO [0m] [1mSubscribed to commands[0m
+[ 08:15:15.3548PM | [1mINFO [0m] [1mSubscribed to election_messages[0m
+[ 08:15:15.3549PM | [1mINFO [0m] [1mSubscribed to connection_messages[0m
+[ 08:15:15.3550PM | [1mINFO [0m] [1mSubscribed to download_commands[0m
+[ 08:15:15.3574PM | [33m[1mWARNING [0m] [33m[1mmacmon preflight failed with return code 1: Error: Os { code: 2, kind: NotFound, message: "No such file or directory" }[0m
+[ 08:15:15.3574PM | [33m[1mWARNING [0m] [33m[1mmacmon at /opt/homebrew/bin/macmon is unusable, falling back to psutil memory monitoring[0m
+[ 08:15:15.5525PM | [1mINFO [0m] [1mWaiting for other campaign to finish[0m
+[ 08:15:18.5538PM | [1mINFO [0m] [1mNode elected Master - maintaining self[0m
+[ 08:15:18.5543PM | [1mINFO [0m] [1mUnpausing API[0m
+[ 08:15:20.3399PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc510c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc510c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc510c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc510c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:25.3492PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29630>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29630>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29630>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29630>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:25.3871PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51780>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51780>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51780>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51780>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:25.4065PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc510c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc510c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc510c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc510c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:30.4289PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf6980>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf6980>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf6980>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf6980>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:35.3905PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5510>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5510>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5510>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5510>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:35.4260PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce82b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce82b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce82b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce82b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:35.4607PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf6170>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf6170>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf6170>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf6170>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:40.4837PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9f30>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9f30>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9f30>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9f30>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:45.4323PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d50>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:45.4676PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d20>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d20>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d20>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d20>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:45.5167PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc516f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc516f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc516f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc516f0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:50.5422PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea980>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea980>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea980>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea980>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:55.4736PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a530>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a530>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a530>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a530>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:55.5110PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28820>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28820>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28820>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28820>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:15:55.5787PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b640>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b640>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b640>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b640>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:00.6024PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51510>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51510>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51510>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51510>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:05.5162PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9330>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9330>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9330>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9330>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:05.5531PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28820>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28820>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28820>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28820>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:05.6367PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2acb0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2acb0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2acb0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2acb0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:10.6602PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5750>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5750>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5750>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5750>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:15.3541PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b610>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b610>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b610>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b610>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10b821120>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10b8204a0>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:16:15.3810PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf58d0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf58d0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf58d0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf58d0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10b820900>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10b820680>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:16:15.5577PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8e80>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8e80>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8e80>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8e80>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:15.5942PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9c90>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9c90>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9c90>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9c90>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:15.6958PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce91b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce91b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce91b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce91b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:20.7228PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10b409ed0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10b409ed0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10b409ed0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10b409ed0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:25.6005PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28850>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28850>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28850>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28850>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:25.6383PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e87f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e87f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e87f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e87f0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:25.7625PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7cd0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7cd0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7cd0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7cd0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:30.7924PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb287c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb287c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb287c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb287c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:35.6420PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5900>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5900>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5900>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5900>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:35.6796PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e40>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e40>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e40>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e40>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:35.8317PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e40>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e40>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e40>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5e40>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:40.8663PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29300>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29300>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29300>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29300>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:45.6808PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf67d0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf67d0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf67d0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf67d0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:45.7151PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39600>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39600>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39600>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39600>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:45.9084PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5b10>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5b10>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5b10>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5b10>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:50.9514PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39ba0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39ba0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39ba0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39ba0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:55.7224PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e8550>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e8550>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e8550>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e8550>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:55.7566PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a410>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a410>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a410>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a410>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:16:55.9932PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b610>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b610>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b610>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b610>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:01.0309PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b670>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b670>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b670>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b670>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:05.7593PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9360>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9360>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9360>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9360>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:05.7884PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8940>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8940>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8940>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8940>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:06.0642PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38970>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38970>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38970>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38970>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:11.1016PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7700>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7700>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7700>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7700>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:15.3827PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9480>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9480>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9480>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9480>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10b821120>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10b8204a0>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:17:15.4127PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b490>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b490>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b490>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b490>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10b820900>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10b820680>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:17:15.7956PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8790>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8790>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8790>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8790>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:15.8242PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9570>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9570>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9570>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9570>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:16.1378PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb760>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb760>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb760>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb760>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:21.1745PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29ff0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29ff0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29ff0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29ff0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:25.8300PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce87f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce87f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce87f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce87f0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:25.8618PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b610>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b610>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b610>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b610>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:26.2053PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cac52a0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cac52a0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cac52a0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cac52a0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:31.2347PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc537f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc537f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc537f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc537f0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:35.8680PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb2b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb2b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb2b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb2b0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:35.8983PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8340>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8340>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8340>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8340>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:36.2697PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a9b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a9b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a9b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a9b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:41.3041PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52d70>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52d70>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52d70>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52d70>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:45.9039PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a950>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a950>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a950>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a950>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:45.9329PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba00>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba00>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba00>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba00>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:46.3271PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ab90>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ab90>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ab90>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ab90>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:51.3656PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39ff0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39ff0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39ff0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39ff0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:55.9400PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8700>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8700>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8700>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8700>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:55.9692PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce93c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce93c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce93c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce93c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:17:56.4014PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8580>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8580>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8580>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8580>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:01.4430PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39390>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39390>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39390>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd39390>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:05.9777PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b370>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b370>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b370>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b370>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:06.0138PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a9e0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a9e0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a9e0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a9e0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:06.4865PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b100>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b100>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b100>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b100>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:11.5285PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8cd0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8cd0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8cd0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8cd0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:15.4226PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10b409ed0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10b409ed0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10b409ed0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10b409ed0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10b821120>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10b8204a0>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:18:15.4605PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf4130>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf4130>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf4130>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf4130>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10b820900>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10b820680>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:18:16.0189PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5f00>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5f00>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5f00>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5f00>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:16.0574PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8250>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8250>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8250>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8250>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:16.5694PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf4490>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf4490>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf4490>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf4490>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:21.6110PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd395d0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd395d0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd395d0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd395d0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:26.0603PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50ca0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50ca0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50ca0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50ca0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:26.0916PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd397e0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd397e0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd397e0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd397e0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:26.6511PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51ae0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51ae0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51ae0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51ae0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:31.6880PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a410>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a410>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a410>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a410>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:36.1023PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3ab30>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3ab30>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3ab30>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3ab30>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:36.1377PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea9e0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea9e0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea9e0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea9e0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:36.7305PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea1d0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea1d0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea1d0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea1d0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:41.7745PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc53a30>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc53a30>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc53a30>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc53a30>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:46.1453PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51390>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51390>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51390>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51390>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:46.1825PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc53df0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc53df0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc53df0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc53df0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:46.8191PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38130>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38130>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38130>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38130>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:51.8625PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccb2590>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccb2590>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccb2590>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccb2590>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:56.1873PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5de0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5de0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5de0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5de0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:56.2241PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea680>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea680>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea680>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea680>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:18:56.9049PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea080>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea080>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea080>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea080>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:01.9462PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc524a0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc524a0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc524a0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc524a0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:06.2320PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29270>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29270>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29270>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29270>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:06.2675PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9870>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9870>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9870>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9870>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:06.9856PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29d80>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29d80>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29d80>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29d80>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:12.0314PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28850>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28850>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28850>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28850>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:15.4630PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c390af0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c390af0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c390af0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c390af0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10b821120>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10b8204a0>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:19:15.4981PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29c60>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29c60>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29c60>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29c60>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10b820900>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10b820680>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:19:16.2711PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc511b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc511b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc511b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc511b0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:16.3047PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50bb0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50bb0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50bb0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50bb0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:17.0560PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10dc7a4a0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10dc7a4a0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10dc7a4a0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10dc7a4a0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:22.0799PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7b20>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7b20>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7b20>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7b20>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:26.3045PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc524d0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc524d0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc524d0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc524d0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:26.3338PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5fc0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5fc0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5fc0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5fc0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:27.0972PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc525c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc525c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc525c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc525c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:32.1202PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf55d0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf55d0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf55d0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf55d0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:36.3437PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52ce0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52ce0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52ce0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52ce0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:36.3807PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc525c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc525c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc525c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc525c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:37.1463PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc520b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc520b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc520b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc520b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:42.1706PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29510>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29510>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29510>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29510>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:46.3849PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba90>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba90>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba90>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba90>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:46.4220PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2afb0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2afb0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2afb0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2afb0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:47.2005PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8ebc10>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8ebc10>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8ebc10>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8ebc10>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:52.2357PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51a50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51a50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51a50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51a50>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:56.4260PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a290>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a290>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a290>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2a290>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:56.4626PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7e80>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7e80>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7e80>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf7e80>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:19:57.2720PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc534f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc534f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc534f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc534f0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:02.3007PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba90>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba90>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba90>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ba90>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:06.4628PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38b50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38b50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38b50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38b50>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:06.4949PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a980>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a980>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a980>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a980>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:07.3405PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29330>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29330>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29330>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29330>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:12.3842PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb370>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb370>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb370>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb370>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:15.5035PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8700>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8700>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8700>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8700>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10b821120>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10b8204a0>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:20:15.5394PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8e80>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8e80>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8e80>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8e80>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10b820900>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10b820680>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:20:16.5007PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38b80>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38b80>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38b80>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38b80>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:16.5370PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb700>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb700>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb700>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb700>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:17.4254PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea200>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea200>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea200>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccea200>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:22.4653PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb760>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb760>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb760>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb760>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:26.5383PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b190>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b190>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b190>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b190>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:26.5688PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceaa70>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceaa70>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceaa70>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceaa70>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:27.5049PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50640>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50640>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50640>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc50640>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:32.5455PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29330>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29330>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29330>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29330>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:36.5719PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e8700>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e8700>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e8700>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8e8700>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:36.6078PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5c00>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5c00>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5c00>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5c00>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:37.5874PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf51e0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf51e0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf51e0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf51e0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:42.6231PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28550>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28550>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28550>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28550>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:46.6100PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38fa0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38fa0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38fa0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38fa0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:46.6440PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ae60>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ae60>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ae60>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2ae60>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:47.6544PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28b50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28b50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28b50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28b50>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:52.6974PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28dc0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28dc0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28dc0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28dc0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:56.6523PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b6d0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b6d0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b6d0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b6d0>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:56.6876PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29a80>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29a80>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29a80>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29a80>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:20:57.7372PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b7f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b7f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b7f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b7f0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:02.7785PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bd00>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bd00>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bd00>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bd00>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:06.6925PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b910>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b910>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b910>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2b910>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:06.7318PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38220>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38220>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38220>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38220>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:07.8183PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bee0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bee0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bee0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bee0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:12.8576PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86e2f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86e2f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86e2f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86e2f0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:15.5363PM | [33m[1mWARNING [0m] [33m[1mError gathering misc data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38400>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38400>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38400>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38400>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m480[0m, in [35m_monitor_misc[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mMiscData[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function MiscData.gather at 0x10b821120>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m320[0m, in [35mgather[0m
+ [35m[1mreturn[0m [1mcls[0m[1m([0m[1mfriendly_name[0m[35m[1m=[0m[35m[1mawait[0m [1mget_friendly_name[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ └ [0m[36m[1m<function get_friendly_name at 0x10b8204a0>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.MiscData'>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m52[0m, in [35mget_friendly_name[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"scutil"[0m[1m,[0m [36m"--get"[0m[1m,[0m [36m"ComputerName"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('scutil', '--get', 'ComputerName')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('scutil', '--get', 'ComputerName')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'scutil'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'scutil'[0m
+[ 08:21:15.5576PM | [33m[1mWARNING [0m] [33m[1mError gathering static node info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86db10>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86db10>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86db10>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86db10>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m471[0m, in [35m_monitor_static_info[0m
+ [35m[1mawait[0m [1mself[0m[35m[1m.[0m[1minfo_sender[0m[35m[1m.[0m[1msend[0m[1m([0m[35m[1mawait[0m [1mStaticNodeInformation[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m[1m)[0m
+ [36m │ │ │ │ └ [0m[36m[1m<classmethod(<function StaticNodeInformation.gather at 0x10b820900>)>[0m
+ [36m │ │ │ └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.StaticNodeInformation'>[0m
+ [36m │ │ └ [0m[36m[1m<function MemoryObjectSendStream.send at 0x10886cd60>[0m
+ [36m │ └ [0m[36m[1mSender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, open_receive_channels=1, w...[0m
+ [36m └ [0m[36m[1mInfoGatherer(info_sender=Sender(_state=MemoryObjectStreamState(max_buffer_size=inf, buffer=deque([]), open_send_channels=1, o...[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m192[0m, in [35mgather[0m
+ [1mmodel[0m[1m,[0m [1mchip[0m [35m[1m=[0m [35m[1mawait[0m [1mget_model_and_chip[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_model_and_chip at 0x10b820680>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m130[0m, in [35mget_model_and_chip[0m
+ [1mprocess[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('system_profiler', 'SPHardwareDataType')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('system_profiler', 'SPHardwareDataType')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'system_profiler'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'system_profiler'[0m
+[ 08:21:16.7371PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3aa40>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3aa40>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3aa40>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3aa40>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:16.7766PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd387c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd387c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd387c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd387c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:17.8973PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5ae0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5ae0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5ae0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10caf5ae0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:22.9398PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bfa0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bfa0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bfa0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3bfa0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:26.7789PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x109bd8e50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x109bd8e50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x109bd8e50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x109bd8e50>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:26.8109PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2add0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2add0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2add0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb2add0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:27.9783PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8ea2c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8ea2c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8ea2c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c8ea2c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:33.0172PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc508b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc508b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc508b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc508b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:36.8202PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb250>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb250>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb250>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cceb250>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:36.8588PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8b80>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8b80>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8b80>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce8b80>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:38.0502PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38880>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38880>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38880>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd38880>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:43.0909PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51810>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51810>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51810>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51810>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:46.8660PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10dc79960>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10dc79960>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10dc79960>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10dc79960>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:46.9025PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d50>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d50>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d50>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc51d50>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:48.1326PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28df0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28df0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28df0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28df0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:53.1715PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc523b0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc523b0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc523b0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc523b0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:56.9069PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccb0d00>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccb0d00>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccb0d00>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10ccb0d00>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:56.9422PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29e40>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29e40>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29e40>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb29e40>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:21:58.2141PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28df0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28df0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28df0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cb28df0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:22:03.2587PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9570>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9570>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9570>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cce9570>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:22:06.9489PM | [33m[1mWARNING [0m] [33m[1mFailed to gather Thunderbolt Bridge info[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52080>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52080>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52080>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cc52080>()>
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m546[0m, in [35m_monitor_thunderbolt_bridge_status[0m
+ [1mcurr[0m [35m[1m=[0m [35m[1mawait[0m [1mThunderboltBridgeInfo[0m[35m[1m.[0m[1mgather[0m[1m([0m[1m)[0m
+ [36m │ └ [0m[36m[1m<classmethod(<function ThunderboltBridgeInfo.gather at 0x10b820d60>)>[0m
+ [36m └ [0m[36m[1m<class 'exo.utils.info_gatherer.info_gatherer.ThunderboltBridgeInfo'>[0m
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m261[0m, in [35mgather[0m
+ [1mtb_devices[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_thunderbolt_devices[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_thunderbolt_devices at 0x10b776e80>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m51[0m, in [35m_get_thunderbolt_devices[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:22:06.9831PM | [33m[1mWARNING [0m] [33m[1mError gathering network interfaces[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b7c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b7c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b7c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3b7c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m534[0m, in [35m_watch_system_info[0m
+ [1mnics[0m [35m[1m=[0m [35m[1mawait[0m [1mget_network_interfaces[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function get_network_interfaces at 0x10b8205e0>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m101[0m, in [35mget_network_interfaces[0m
+ [1minterface_types[0m [35m[1m=[0m [35m[1mawait[0m [1m_get_interface_types_from_networksetup[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _get_interface_types_from_networksetup at 0x10b820540>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1msystem_info.py[0m", line [33m65[0m, in [35m_get_interface_types_from_networksetup[0m
+ [1mresult[0m [35m[1m=[0m [35m[1mawait[0m [1mrun_process[0m[1m([0m[1m[[0m[36m"networksetup"[0m[1m,[0m [36m"-listallhardwareports"[0m[1m][0m[1m)[0m
+ [36m └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:22:08.3032PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a5c0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a5c0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a5c0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10cd3a5c0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
+[ 08:22:13.3437PM | [33m[1mWARNING [0m] [33m[1mError gathering Thunderbolt data[0m
+[33m[1mTraceback (most recent call last):[0m
+
+ File "/Users/macstudio3/exo/.venv/bin/exo", line 10, in <module>
+ sys.exit(main())
+ │ │ └ <function main at 0x1082240e0>
+ │ └ <built-in function exit>
+ └ <module 'sys' (built-in)>
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m327[0m, in [35mmain[0m
+ [1mmain_inner[0m[1m([0m[1margs[0m[1m)[0m
+ [36m│ └ [0m[36m[1mArgs(verbosity=0, force_master=False, spawn_api=True, api_port=52415, tb_only=False, no_worker=False, no_downloads=False, off...[0m
+ [36m└ [0m[36m[1m<function main_inner at 0x10c858400>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/[0m[32m[1mmain.py[0m", line [33m369[0m, in [35mmain_inner[0m
+ [1manyio[0m[35m[1m.[0m[1mrun[0m[1m([0m[1mnode[0m[35m[1m.[0m[1mrun[0m[1m)[0m
+ [36m│ │ │ └ [0m[36m[1m<function Node.run at 0x10c830180>[0m
+ [36m│ │ └ [0m[36m[1mNode(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=SessionId(master_node_id='...[0m
+ [36m│ └ [0m[36m[1m<function run at 0x1086c4220>[0m
+ [36m└ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py", line 74, in run
+ return async_backend.run(func, args, {}, backend_options)
+ │ │ │ │ └ {}
+ │ │ │ └ ()
+ │ │ └ <bound method Node.run of Node(router=<exo.routing.router.Router object at 0x10c769fd0>, event_router=EventRouter(session_id=...
+ │ └ <classmethod(<function AsyncIOBackend.run at 0x10c8e07c0>)>
+ └ <class 'anyio._backends._asyncio.AsyncIOBackend'>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2325, in run
+ return runner.run(wrapper())
+ │ │ └ <function Node.run at 0x10c873f60>
+ │ └ <function Runner.run at 0x1089649a0>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/runners.py", line 119, in run
+ return self._loop.run_until_complete(task)
+ │ │ │ └ <Task pending name='exo.main.Node.run' coro=<Node.run() running at /Users/macstudio3/exo/.venv/lib/python3.13/site-packages/a...
+ │ │ └ <function BaseEventLoop.run_until_complete at 0x10895e2a0>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <asyncio.runners.Runner object at 0x10cad8410>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 712, in run_until_complete
+ self.run_forever()
+ │ └ <function BaseEventLoop.run_forever at 0x10895e200>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 683, in run_forever
+ self._run_once()
+ │ └ <function BaseEventLoop._run_once at 0x108964040>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 2060, in _run_once
+ handle._run()
+ │ └ <function Handle._run at 0x1088f8860>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86e2f0>()>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/events.py", line 89, in _run
+ self._context.run(self._callback, *self._args)
+ │ │ │ │ │ └ <member '_args' of 'Handle' objects>
+ │ │ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86e2f0>()>
+ │ │ │ └ <member '_callback' of 'Handle' objects>
+ │ │ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86e2f0>()>
+ │ └ <member '_context' of 'Handle' objects>
+ └ <Handle <_asyncio.TaskStepMethWrapper object at 0x10c86e2f0>()>
+
+> File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m491[0m, in [35m_monitor_system_profiler_thunderbolt_data[0m
+ [1miface_map[0m [35m[1m=[0m [35m[1mawait[0m [1m_gather_iface_map[0m[1m([0m[1m)[0m
+ [36m └ [0m[36m[1m<function _gather_iface_map at 0x10b820860>[0m
+
+ File "[32m/Users/macstudio3/exo/src/exo/utils/info_gatherer/[0m[32m[1minfo_gatherer.py[0m", line [33m338[0m, in [35m_gather_iface_map[0m
+ [1mproc[0m [35m[1m=[0m [35m[1mawait[0m [1manyio[0m[35m[1m.[0m[1mrun_process[0m[1m([0m
+ [36m │ └ [0m[36m[1m<function run_process at 0x10885ba60>[0m
+ [36m └ [0m[36m[1m<module 'anyio' from '/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/__init__.py'>[0m
+
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 91, in run_process
+ async with await open_process(
+ └ <function open_process at 0x10886d260>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py", line 190, in open_process
+ return await get_async_backend().open_process(
+ └ <function get_async_backend at 0x1086c4ea0>
+ File "/Users/macstudio3/exo/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 2588, in open_process
+ process = await asyncio.create_subprocess_exec(
+ │ └ <function create_subprocess_exec at 0x108967ec0>
+ └ <module 'asyncio' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/__...
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/subprocess.py", line 224, in create_subprocess_exec
+ transport, protocol = await loop.subprocess_exec(
+ │ └ <function BaseEventLoop.subprocess_exec at 0x10895fb00>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_events.py", line 1812, in subprocess_exec
+ transport = await self._make_subprocess_transport(
+ │ └ <function _UnixSelectorEventLoop._make_subprocess_transport at 0x1089c7380>
+ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 214, in _make_subprocess_transport
+ transp = _UnixSubprocessTransport(self, protocol, args, shell,
+ │ │ │ │ └ False
+ │ │ │ └ ('networksetup', '-listallhardwareports')
+ │ │ └ <SubprocessStreamProtocol>
+ │ └ <_UnixSelectorEventLoop running=True closed=False debug=False>
+ └ <class 'asyncio.unix_events._UnixSubprocessTransport'>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/base_subprocess.py", line 40, in __init__
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
+ │ │ │ │ │ └ -1
+ │ │ │ │ └ None
+ │ │ │ └ False
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function _UnixSubprocessTransport._start at 0x1089c8e00>
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/asyncio/unix_events.py", line 856, in _start
+ self._proc = subprocess.Popen(
+ │ │ │ └ <class 'subprocess.Popen'>
+ │ │ └ <module 'subprocess' from '/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subproc...
+ │ └ None
+ └ <_UnixSubprocessTransport closed not started>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1039, in __init__
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ │ │ │ │ │ └ True
+ │ │ │ │ └ None
+ │ │ │ └ None
+ │ │ └ ('networksetup', '-listallhardwareports')
+ │ └ <function Popen._execute_child at 0x1088a0b80>
+ └ <Popen: returncode: 255 args: ('networksetup', '-listallhardwareports')>
+ File "/Users/macstudio3/.local/share/uv/python/cpython-3.13.14-macos-aarch64-none/lib/python3.13/subprocess.py", line 1991, in _execute_child
+ raise child_exception_type(errno_num, err_msg, err_filename)
+ │ │ │ └ 'networksetup'
+ │ │ └ 'No such file or directory'
+ │ └ 2
+ └ <class 'OSError'>
+
+[31m[1mFileNotFoundError[0m:[1m [Errno 2] No such file or directory: 'networksetup'[0m
diff --git a/launchd.err.log b/launchd.err.log
new file mode 100644
index 0000000..e69de29
diff --git a/launchd.out.log b/launchd.out.log
new file mode 100644
index 0000000..e69de29
diff --git a/run-exo.sh b/run-exo.sh
new file mode 100755
index 0000000..ea2da22
--- /dev/null
+++ b/run-exo.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+# exo cluster keepalive runner — launched by com.steve.exo-keepalive (KeepAlive=true).
+# Starts the exo master+worker + OpenAI-compatible API at http://localhost:52415.
+# Steve's standing rule: the cluster is ALWAYS up. launchd respawns this if it exits.
+set -uo pipefail
+export HOME=/Users/macstudio3
+export PATH="/Users/macstudio3/.local/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
+cd "$HOME/exo" || exit 1
+LOG="$HOME/Projects/exo-keepalive/exo.log"
+echo "[$(date +%FT%T%z)] === exo start (pid $$) ===" >> "$LOG"
+# exec so launchd tracks the real exo process (respawns on crash)
+exec /Users/macstudio3/.local/bin/uv run exo >> "$LOG" 2>&1
(oldest)
·
back to Exo Keepalive
·
exo keepalive: node-bind flow; bootstrap-peers reverted (rem 4ded18a →