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
62 lines
1.6 KiB
Python
62 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any, Dict, List, Literal, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
AuroraMode = Literal["tactical", "forensic"]
|
|
MediaType = Literal["video", "audio", "photo", "unknown"]
|
|
JobStatus = Literal["queued", "processing", "completed", "failed", "cancelled"]
|
|
|
|
|
|
class InputFileDescriptor(BaseModel):
|
|
name: str
|
|
hash: str
|
|
|
|
|
|
class ProcessingStep(BaseModel):
|
|
step: str
|
|
agent: str
|
|
model: str
|
|
time_ms: int = 0
|
|
details: Dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class OutputFileDescriptor(BaseModel):
|
|
type: str
|
|
name: str
|
|
url: str
|
|
hash: str
|
|
|
|
|
|
class AuroraResult(BaseModel):
|
|
agent: str = "Aurora"
|
|
mode: AuroraMode
|
|
job_id: str
|
|
media_type: MediaType
|
|
input_file: InputFileDescriptor
|
|
processing_log: List[ProcessingStep] = Field(default_factory=list)
|
|
output_files: List[OutputFileDescriptor] = Field(default_factory=list)
|
|
digital_signature: Optional[str] = None
|
|
metadata: Dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class AuroraJob(BaseModel):
|
|
job_id: str
|
|
file_name: str
|
|
mode: AuroraMode
|
|
media_type: MediaType
|
|
input_path: str
|
|
input_hash: str
|
|
status: JobStatus = "queued"
|
|
progress: int = 0
|
|
current_stage: str = "queued"
|
|
error_message: Optional[str] = None
|
|
cancel_requested: bool = False
|
|
processing_log: List[ProcessingStep] = Field(default_factory=list)
|
|
result: Optional[AuroraResult] = None
|
|
created_at: str
|
|
started_at: Optional[str] = None
|
|
completed_at: Optional[str] = None
|
|
metadata: Dict[str, Any] = Field(default_factory=dict)
|