Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOVA

NOVA is a local-first personal AI assistant foundation for Windows.

Implemented phases:

  • Phase 0: config, identity/session, event bus, audit logging.
  • Phase 1: capabilities, permissions, risk classifier, confirmation flow.
  • Phase 2: PySide6 desktop GUI, tray, chat input/history/status.
  • Phase 3: LLM providers and LLMService.
  • Phase 4: manual voice pipeline with dummy STT/TTS.
  • Phase 5: local JSON memory MVP.
  • Phase 6: agent runtime with planner, memory, voice, security, and system agents.
  • Phase 7: safe allowlist-only system commands.

Quick Start

python -m pip install -e ".[dev]"
python -m pytest
python main.py

Desktop MVP

python -m apps.desktop.main

Tauri Desktop Shell

Phase 29 adds a long-term Tauri 2 + React desktop shell in apps/desktop_shell. It connects to the existing local NOVA API at http://127.0.0.1:8000 and keeps privileged actions in the backend. Phase 30 integrates Dashboard, Runtime, Voice, Chat, Event Stream, and Settings with live local API data plus stable offline fallback.

cd apps/desktop_shell
npm install
npm run tauri dev

Voice Runtime TTS

Phase 26 adds optional local system text-to-speech through pyttsx3. It is not a required dependency; NOVA falls back to dummy TTS when fallback is enabled.

python -m pip install pyttsx3
$env:NOVA_VOICE_RUNTIME_TTS_PROVIDER="system"
$env:NOVA_VOICE_RUNTIME_TTS_FALLBACK_ENABLED="true"

If pyttsx3 or an audio device is unavailable, /voice/push-to-talk still returns safely with dummy fallback metadata.

Voice Runtime STT

Phase 27 adds optional local whisper.cpp speech-to-text for file/bytes based push-to-talk. It is still explicit and manual: no wake word, no browser microphone capture, and no background listening.

$env:NOVA_VOICE_RUNTIME_STT_PROVIDER="whisper_cpp"
$env:NOVA_STT_WHISPER_CPP_BINARY_PATH="C:/tools/whisper.cpp/main.exe"
$env:NOVA_STT_WHISPER_CPP_MODEL_PATH="C:/models/ggml-small.bin"
$env:NOVA_STT_WHISPER_CPP_LANGUAGE="ru"

For MVP, /voice/push-to-talk can accept an audio_path that points to an existing local audio file.

Browser Push-to-Talk

Phase 28 adds manual browser microphone recording in /web with MediaRecorder. Recording starts only after pressing Start recording, stops with Stop and send, and uploads a temporary audio blob to /voice/push-to-talk as multipart/form-data.

Safety defaults:

  • no wake word
  • no background recording
  • no streaming audio
  • upload limit: 10 MB
  • temporary audio is deleted after processing
  • supported upload extensions: .wav, .webm, .mp3, .m4a, .ogg

Desktop input flows through:

GUI -> DesktopRuntime -> AgentRuntime -> Agent

Supported chat commands:

ordinary text
/remember Я работаю над проектом NOVA
/recall
/recall NOVA
/forget memory_xxx
/voice test привет
/security status
/system status
/system list
/system open app notepad
/system open app vscode
/system open url google
/system open url github

Safe System Commands

System commands are allowlist-only. Arbitrary shell is disabled:

system:
  enabled: true
  allow_arbitrary_shell: false

Allowed command types:

  • status
  • list
  • app
  • url

Apps use subprocess.Popen([...], shell=False) with command and args from config only. URLs use webbrowser.open() with URLs from config only. User-provided shell strings are never executed.

Agent Runtime

The runtime includes:

  • PlannerAgent: rule-based routing.
  • MemoryAgent: wraps MemoryService.
  • VoiceAgent: wraps VoicePipeline.
  • SecurityAgent: safe status placeholder.
  • SystemAgent: wraps SafeCommandExecutor.

Agent audit logs never store full user input; they store task type, input length, source, selected agent, success, and error category.

Current Limits

No plugin loading, internet search, arbitrary shell, file delete/write commands, software installation, autonomous task chains, vector memory, semantic search, cloud memory sync, or device mesh yet.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages