New router intelligence modules (26 files): alert_ingest/store, audit_store, architecture_pressure, backlog_generator/store, cost_analyzer, data_governance, dependency_scanner, drift_analyzer, incident_* (5 files), llm_enrichment, platform_priority_digest, provider_budget, release_check_runner, risk_* (6 files), signature_state_store, sofiia_auto_router, tool_governance New services: - sofiia-console: Dockerfile, adapters/, monitor/nodes/ops/voice modules, launchd, react static - memory-service: integration_endpoints, integrations, voice_endpoints, static UI - aurora-service: full app suite (analysis, job_store, orchestrator, reporting, schemas, subagents) - sofiia-supervisor: new supervisor service - aistalk-bridge-lite: Telegram bridge lite - calendar-service: CalDAV calendar service with reminders - mlx-stt-service / mlx-tts-service: Apple Silicon speech services - binance-bot-monitor: market monitor service - node-worker: STT/TTS memory providers New tools (9): agent_email, browser_tool, contract_tool, observability_tool, oncall_tool, pr_reviewer_tool, repo_tool, safe_code_executor, secure_vault New crews: agromatrix_crew (10 modules: depth_classifier, doc_facts, doc_focus, farm_state, light_reply, llm_factory, memory_manager, proactivity, reflection_engine, session_context, style_adapter, telemetry) Tests: 85+ test files for all new modules Made-with: Cursor
60 lines
2.3 KiB
Bash
Executable File
60 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "${ROOT_DIR}"
|
|
|
|
# Load root env if present (API keys, etc.)
|
|
if [ -f "../../.env" ]; then
|
|
set -a
|
|
# shellcheck disable=SC1091
|
|
source "../../.env"
|
|
set +a
|
|
fi
|
|
|
|
export ENV="${ENV:-dev}"
|
|
export PORT="${PORT:-8002}"
|
|
export OLLAMA_URL="${OLLAMA_URL:-http://localhost:11434}"
|
|
# On NODA2 native runtime we prefer local memory-service.
|
|
# Set SOFIIA_FORCE_LOCAL_MEMORY=false to keep external URL from env.
|
|
if [ "${SOFIIA_FORCE_LOCAL_MEMORY:-true}" = "true" ]; then
|
|
export MEMORY_SERVICE_URL="http://localhost:8000"
|
|
else
|
|
export MEMORY_SERVICE_URL="${MEMORY_SERVICE_URL:-http://localhost:8000}"
|
|
fi
|
|
export ROUTER_URL="${ROUTER_URL:-http://144.76.224.179:9102}"
|
|
export GATEWAY_URL="${GATEWAY_URL:-http://144.76.224.179:9300}"
|
|
|
|
export SOFIIA_PREFERRED_CHAT_MODEL="${SOFIIA_PREFERRED_CHAT_MODEL:-ollama:qwen3:14b}"
|
|
export SOFIIA_OLLAMA_TIMEOUT_SEC="${SOFIIA_OLLAMA_TIMEOUT_SEC:-120}"
|
|
export SOFIIA_OLLAMA_VOICE_TIMEOUT_SEC="${SOFIIA_OLLAMA_VOICE_TIMEOUT_SEC:-45}"
|
|
export SOFIIA_OLLAMA_KEEP_ALIVE="${SOFIIA_OLLAMA_KEEP_ALIVE:-30m}"
|
|
export SOFIIA_OLLAMA_NUM_CTX="${SOFIIA_OLLAMA_NUM_CTX:-8192}"
|
|
export SOFIIA_OLLAMA_NUM_THREAD="${SOFIIA_OLLAMA_NUM_THREAD:-8}"
|
|
export SOFIIA_OLLAMA_NUM_GPU="${SOFIIA_OLLAMA_NUM_GPU:--1}"
|
|
export SOFIIA_OLLAMA_NUM_PREDICT_TEXT="${SOFIIA_OLLAMA_NUM_PREDICT_TEXT:-768}"
|
|
|
|
export SOFIIA_DATA_DIR="${SOFIIA_DATA_DIR:-$HOME/.sofiia/console-data}"
|
|
mkdir -p "${SOFIIA_DATA_DIR}"
|
|
|
|
export AISTALK_ENABLED="${AISTALK_ENABLED:-true}"
|
|
export AISTALK_URL="${AISTALK_URL:-http://127.0.0.1:9415}"
|
|
export AISTALK_API_KEY="${AISTALK_API_KEY:-}"
|
|
|
|
if [ -d "venv" ]; then
|
|
# shellcheck disable=SC1091
|
|
source venv/bin/activate
|
|
elif [ -d "../../venv" ]; then
|
|
# shellcheck disable=SC1091
|
|
source ../../venv/bin/activate
|
|
fi
|
|
|
|
echo "[sofiia-daemon] starting on 127.0.0.1:${PORT}"
|
|
echo "[sofiia-daemon] data: ${SOFIIA_DATA_DIR}"
|
|
echo "[sofiia-daemon] ollama: ${OLLAMA_URL}"
|
|
echo "[sofiia-daemon] model: ${SOFIIA_PREFERRED_CHAT_MODEL}"
|
|
echo "[sofiia-daemon] tune: ctx=${SOFIIA_OLLAMA_NUM_CTX} threads=${SOFIIA_OLLAMA_NUM_THREAD} gpu=${SOFIIA_OLLAMA_NUM_GPU} keep_alive=${SOFIIA_OLLAMA_KEEP_ALIVE}"
|
|
echo "[sofiia-daemon] aistalk: enabled=${AISTALK_ENABLED} url=${AISTALK_URL}"
|
|
|
|
exec python3 -m uvicorn app.main:app --host 127.0.0.1 --port "${PORT}"
|