Includes updates across gateway, router, node-worker, memory-service, aurora-service, swapper, sofiia-console UI and node2 infrastructure: - gateway-bot: Dockerfile, http_api.py, druid/aistalk prompts, doc_service - services/router: main.py, router-config.yml, fabric_metrics, memory_retrieval, offload_client, prompt_builder - services/node-worker: worker.py, main.py, config.py, fabric_metrics - services/memory-service: Dockerfile, database.py, main.py, requirements - services/aurora-service: main.py (+399), kling.py, quality_report.py - services/swapper-service: main.py, swapper_config_node2.yaml - services/sofiia-console: static/index.html (console UI update) - config: agent_registry, crewai_agents/teams, router_agents - ops/fabric_preflight.sh: updated preflight checks - router-config.yml, docker-compose.node2.yml: infra updates - docs: NODA1-AGENT-ARCHITECTURE, fabric_contract updated Made-with: Cursor
Aurora Service
aurora-service is a FastAPI scaffold for AISTALK media forensics workflows.
API
POST /api/aurora/upload(multipart/form-data)- fields:
file,mode(tactical|forensic) - returns
job_id
- fields:
GET /api/aurora/status/{job_id}GET /api/aurora/jobsGET /api/aurora/result/{job_id}POST /api/aurora/cancel/{job_id}POST /api/aurora/delete/{job_id}GET /api/aurora/files/{job_id}/{file_name}
Notes
- Visual media (
video,photo) run deterministic sequential enhancement with conservative defaults:frame -> pre-denoise -> deblur -> face restore (GFPGAN / CodeFormer-style fallback) -> Real-ESRGAN- For
priority=faces, pipeline can switch to ROI-only face processing (background preserved). - Score-driven candidate selection is enabled for forensic face workflows.
audiopath remains scaffold (Echo) for now.- Forensic mode adds chain-of-custody artifacts and signature metadata.
- Model weights are auto-downloaded to
AURORA_MODELS_DIRon first run.
Local run
cd services/aurora-service
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 9401
Native macOS run (Apple Silicon)
cd services/aurora-service
./setup-native-macos.sh
./start-native-macos.sh
This profile enables:
AURORA_FORCE_CPU=falseAURORA_PREFER_MPS=trueAURORA_ENABLE_VIDEOTOOLBOX=true
Runtime env vars
AURORA_DATA_DIR(default:/data/aurora)AURORA_MODELS_DIR(default:/data/aurora/models)AURORA_FORCE_CPU(default:true)AURORA_PREFER_MPS(default:true)AURORA_ENABLE_VIDEOTOOLBOX(default:true)AURORA_FFMPEG_VIDEO_ENCODER(optional override, e.g.h264_videotoolbox)KLING_ACCESS_KEY/KLING_SECRET_KEY(required for Kling endpoints)KLING_BASE_URL(default:https://api.klingai.com)KLING_TIMEOUT(default:60)
Autostart via launchd (macOS)
cd services/aurora-service
./launchd/install-launchd.sh
Optional Kling setup via Keychain:
cd services/aurora-service
./launchd/configure-kling-keychain.sh
The script stores credentials in macOS Keychain (daarion.kling.access_key, daarion.kling.secret_key) and restarts launchd service. start-native-macos.sh reads Keychain-backed values automatically when KLING_* env vars are not set.
Alternative: create ${HOME}/.sofiia/aurora.env (chmod 600) with:
KLING_ACCESS_KEY=...
KLING_SECRET_KEY=...
KLING_BASE_URL=https://api.klingai.com
KLING_TIMEOUT=60
install-launchd.sh sets AURORA_ENV_FILE=${HOME}/.sofiia/aurora.env by default.
Useful commands:
./launchd/status-launchd.sh
./launchd/uninstall-launchd.sh
install-launchd.sh bootstraps the service immediately, so reboot is not required.