Skip to main content

Paths, Artifacts, and Configuration Quick Reference

Build Artifacts​

PathDescription
build-host/bin/aiden_testsHost-native C++ test binary
output/debian-apps/apps/bin/Cross-compiled application and diagnostic binaries
output/debian-apps/apps/lib/Runtime libraries staged into rootfs platform/lib
output/debian-apps/apps-audit/ELF, dependency, and allowlist audit results
output/debian-system/rootfs.ext4Reproducible Debian armhf rootfs image
output/debian-system/image/Audited system partition and factory images
output/debian/image/update.imgFinal directly flashable local firmware
output/debian/image/manifest.jsonLocally signed OTA manifest

Important Source Paths​

PathDescription
src/aiden_sdk.hC++ SDK API
src/frame_service_main.cppFrame Service entry point
src/audio_service_main.cppAudio Service entry point
src/agent/internal/configweb/Go Config Web implementation (served by agent config-web)
src/config_web/web/Config Web HTML, CSS, and JavaScript assets
src/system_env_*Strict persistent-to-runtime environment generation
src/agent/cmd/daemonGo Agent daemon
src/agent/cmd/otaOTA CLI
src/agent/cmd/abctlA/B metadata diagnostic tool
src/agent/internal/agentAgent runtime and tools
src/agent/internal/otaOTA download, slot, health, and state machine
overlay-debian/Debian rootfs overlay and systemd integration
assets/business/Business package models and notification sounds
overlay-debian/usr/lib/aiden/platform/lib/Platform runtime libraries, including the VQE AEC/beamforming libs registered by aiden-platform-ldconfig
scripts/debian-apps/Application cross-build and audit
scripts/debian-system/Rootfs, BSP, image assembly, and audit
tests/Host-native C++ tests

Device Default Paths​

PathDescription
/usr/lib/aiden/Packaged applications and base-owned service helpers
/usr/lib/aiden/platform/lib/Vendor and application runtime libraries
/usr/lib/aiden/models/VAD models and weights
/usr/share/aiden/config-web/Config Web static assets served by agent config-web
/userdata/agent/agent.tomlAgent configuration
/userdata/agent/python/Persistent pip userbase
/userdata/agent/skills/Agent skills
/userdata/agent/memory/Agent memory
/userdata/agent/log/Agent and LLM HTTP logs
/userdata/system/envPersistent device environment source
/userdata/system/wifi-proxies.jsonMode and optional upstream proxy URL selected per saved Wi-Fi SSID
/run/aiden/system.envValidated runtime environment
/userdata/debian/wifi/wpa_supplicant-wlan0.confWi-Fi configuration
/userdata/debian/ota/config.jsonDebian OTA repository and factory baseline
/userdata/ota/Dedicated OTA state and download partition
/usr/share/keyrings/aiden-ota.pemOTA manifest Ed25519 public key
/run/frame_service/frame_service.sockFrame service socket
/run/audio_service/audio_service.sockAudio service socket
/run/ble_service/ble_service.sockBLE service socket
/run/aiden/storage.stateStorageManager state shared by Config Web and Agent
/run/agent/storage_levelCurrent StorageMonitor level

Service sockets under /run/*_service/ are mode 0660 root:aiden. The audio and frame units declare Group=aiden and SupplementaryGroups=audio video, so the plain aiden user can run the diagnostic CLIs against them. A socket that shows up as 0755 root:root, or a client that gets TRANSPORT_ERROR, means the unit lost those group settings or the process ran under an unexpected umask.

Login shells for both root and aiden append /usr/lib/aiden to PATH via /etc/profile.d/aiden-path.sh. /etc/sudoers.d/20-aiden-path also includes it in sudo's secure_path, so installed tools can be called by name, including sudo ota status. Reconnect SSH or the Web terminal after installing this configuration; an existing shell can load it with . /etc/profile.d/aiden-path.sh. Child shells inherit the exported path.

Configuration Sources​

FileDescription
overlay-debian/etc/aiden_boot.confProduct feature gates
overlay-debian/etc/aiden_frame_service.confFrame launch and capture policy
overlay-debian/etc/aiden_audio_service.confAudio socket and volume state
overlay-debian/etc/aiden_ble_service.confBLE service parameters
overlay-debian/etc/systemd/system/Debian service and mount units
overlay-debian/etc/systemd/network/systemd-networkd configuration
overlay-debian/etc/profile.d/aiden-python.shFixed persistent Python userbase
assets/business/models/Business VAD models
assets/business/audio/Business notification audio
overlay-debian/usr/share/aiden/audio/config_aivqe.jsonPlatform VQE configuration
overlay-debian/etc/ld.so.conf.d/aiden-platform.confRegisters platform libraries from the active slot
AGENT_CONFIG_PATHExternal Agent configuration required by image assembly
OTA_PUBLIC_KEY_PATHExternal OTA verification key required by rootfs and image assembly

Common Commands​

# Build and test (all compiler/test commands run in Docker)
make check # Quick local feedback
make check-full # Complete CI test gate
make check-production # ARM production smoke
scripts/debian-apps/build-apps.sh all
./debian_build.sh

# Flash on Linux (after entering Loader/Maskrom)
FLASH_TOOL=pico-sdk/tools/linux/Linux_Upgrade_Tool/upgrade_tool
IMAGE=output/debian/image/update.img
scripts/flash.sh inspect --tool "${FLASH_TOOL}"
sudo scripts/flash.sh flash --tool "${FLASH_TOOL}" \
--image "${IMAGE}" --sha256 "$(awk '{print $1}' "${IMAGE}.sha256")" \
--confirm-erase-all-data

# Flash on macOS
./upgrade_tool/upgrade_tool uf ./output/debian/image/update.img

# Service status
systemctl status aiden-frame.service --no-pager
systemctl status aiden-audio.service --no-pager
systemctl status aiden-wifi-proxy.service --no-pager
systemctl status aiden-agent.service --no-pager
systemctl --failed

# Frame debugging
frame_service_cli --socket /run/frame_service/frame_service.sock health
frame_service_cli --socket /run/frame_service/frame_service.sock screenshot --out /tmp/screenshot.bmp

# Audio debugging
audio_service_cli --socket /run/audio_service/audio_service.sock health
audio_service_cli --socket /run/audio_service/audio_service.sock get-volume

# Config Web management API
curl http://<device-ip>/api/storage/status

# Agent runtime API
curl http://<device-ip>:8080/api/tools
curl http://<device-ip>:8080/api/storage/monitor/status
curl -X POST -H 'Content-Type: application/json' -d '{"force":false,"targets":[]}' http://<device-ip>:8080/api/storage/cleanup

# OTA
/usr/lib/aiden/ota status
/usr/lib/aiden/ota update
/usr/lib/aiden/abctl read /dev/disk/by-partlabel/misc

# Logs
tail -f /userdata/agent/log/agent.log
journalctl -u aiden-frame.service -u aiden-agent.service

The diagnostic CLIs are apps artifacts and are not generally included in the business package; frame_service_cli and audio_service_cli are included for OTA health checks. Copy a required CLI to /userdata for a bounded device test.

Persistent Logs​

PathDescription
/userdata/agent/log/agent.logAgent supervisor and runtime output; capped by aiden-agent-log-retention.timer
/userdata/agent/log/llm-http-*.logSession-partitioned LLM HTTP JSONL
/var/log/frame_service/frame_service.logFrame service output
/var/log/audio_service/audio_service.logAudio service output
/var/log/ble_service/ble_service.logBLE service output
/var/log/ota/ota.logOTA health output
/var/log/adb/adb-startup.logadb host startup output

When StorageMonitor reports critical or emergency, the Agent runtime trims managed logs and Python temporary data according to the configured policy under storage_settings.storage.degraded_mode.

EDID Files​

Development EDIDs live in edid/. The Debian rootfs installs its production TC358743 EDID at:

/usr/share/aiden/edid/hdmi_1080p30_cta.hex