Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/voice_pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ body:
id: llm_backend
attributes:
label: LLM backend + model
placeholder: "genie-ai-runtime / phi-4-mini-instruct-q4_k_m.gguf"
placeholder: "genie-ai-runtime / Qwen3-4B-Q4_K_M.gguf"
validations:
required: false

Expand Down
8 changes: 4 additions & 4 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This repository should be understood as the Rust agent runtime that sits above:
- GenieOS, the custom L4T and system image layer
- `genie-voice-runtime`, the external voice runtime for wake/VAD/STT/TTS/audio
- `genie-home-runtime`, the future AI-native home automation runtime
- `genie-ai-runtime`, the future Jetson-only LLM inference runtime
- `genie-ai-runtime`, the external Jetson-first LLM inference runtime

It sits below:

Expand Down Expand Up @@ -89,9 +89,9 @@ This repo can keep transitional implementations while those layers are still for

The current repo still contains pragmatic adapters used to ship on Jetson now.

| Current adapter | Long-term replacement | Notes |
| Current adapter | Target boundary | Notes |
| --- | --- | --- |
| `genie-ai-runtime` OpenAI-compatible client (default on Jetson) | `llama.cpp` client (selectable fallback) | Both backends ship behind the `LlmClient` facade; per-deployment selection via `[services.llm].backend` in `geniepod.toml`. Backend identity surfaces in `/api/health`, startup logs, and `genie-ctl status`. |
| `genie-ai-runtime` OpenAI-compatible client (default on Jetson) | external `genie-ai-runtime` service | `llama.cpp` remains a selectable fallback/development backend. Both backends ship behind the `LlmClient` facade; per-deployment selection is via `[services.llm].backend` in `geniepod.toml`. Backend identity surfaces in `/api/health`, startup logs, and `genie-ctl status`. |
| In-repo voice pipeline under `crates/genie-core/src/voice/` and `voice_loop.rs` | [`genie-voice-runtime`](https://github.com/GeniePod/genie-voice-runtime) | Keep current code as a transitional Jetson bring-up path. New wake/VAD/STT/TTS/audio ownership should move to the external runtime. GenieClaw should consume transcripts and issue speak commands. |
| Home Assistant provider | `genie-home-runtime` MCP/API client | Keep HA-specific behavior behind `ha/` and tools/home boundaries. |
| Actuation safety in `genie-core` | final safety in `genie-home-runtime` | Keep current safety as an agent-side guard and confirmation layer. |
Expand Down Expand Up @@ -281,7 +281,7 @@ The clean architecture path is incremental:
1. Make boundary language consistent in docs and config.
2. Keep Home Assistant and LLM backends behind narrow adapter traits (LLM side resolved via the `LlmClient` facade in `crates/genie-core/src/llm/`).
3. Move physical actuation authority downward into `genie-home-runtime` when it exists.
4. Move Jetson model-server specialization downward into `genie-ai-runtime`.
4. Keep Jetson model-server specialization in `genie-ai-runtime`.
5. Move voice/audio pipeline ownership downward into `genie-voice-runtime`.
6. Keep GenieClaw focused on agent policy, memory, skills, tools, channels, and household interaction.

Expand Down
13 changes: 9 additions & 4 deletions CODEBASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ The most important runtime path is:

1. A request enters through the web UI, CLI, REPL, voice loop, or Telegram adapter.
2. `genie-core` builds prompt context from conversation history and household memory.
3. The LLM client talks to the local `llama.cpp`-compatible server.
3. The LLM facade talks to the configured OpenAI-compatible backend. Jetson
deploys default to `genie-ai-runtime`; development configs can still use a
local `llama.cpp` server.
4. If the model emits a tool call, the tool parser and dispatcher execute the tool.
5. Tool results may be returned directly or summarized, depending on the tool.
6. Conversation state and extracted memory are persisted to SQLite.
Expand All @@ -62,7 +64,7 @@ Around that path:
| `Cargo.lock` | Locked dependency graph. |
| `Makefile` | Main developer and Jetson deploy entry points: build, test, release, cross-compile, and deploy. |
| `Dockerfile` | Multi-stage container build for the local dev/runtime image. |
| `docker-compose.dev.yml` | Dev stack for `genie-core`, `genie-api`, and a local `llama.cpp` server. |
| `docker-compose.dev.yml` | Dev stack for `genie-core`, `genie-api`, and a local OpenAI-compatible model server. |
| `README.md` | Product-level overview and repo orientation. |
| `GETTING_STARTED.md` | Local dev, Docker, and Jetson bring-up guide. |
| `ARCHITECTURE.md` | Higher-level system architecture narrative. |
Expand Down Expand Up @@ -110,8 +112,11 @@ The primary runtime. This is where most product behavior lives.
| Path | Purpose |
| --- | --- |
| `crates/genie-core/src/llm/mod.rs` | LLM module exports. |
| `crates/genie-core/src/llm/client.rs` | Raw TCP/OpenAI-compatible chat client for the local inference server, including streaming and compatibility fallbacks. |
| `crates/genie-core/src/llm/retry.rs` | Retry and graceful fallback layer around the base client. |
| `crates/genie-core/src/llm/openai_compat.rs` | Raw bounded OpenAI-compatible HTTP client used by local and optional provider backends. |
| `crates/genie-core/src/llm/genie_ai_runtime.rs` | Adapter for the default Jetson `genie-ai-runtime` backend and its request hints. |
| `crates/genie-core/src/llm/llama_cpp.rs` | Adapter for the legacy/development `llama.cpp` backend. |
| `crates/genie-core/src/llm/openai_compatible.rs` | Generic OpenAI-compatible provider adapter with bearer-token support. |
| `crates/genie-core/src/llm/provider.rs` | Optional provider planning and limited-context readiness checks. |

#### Home Assistant Integration

Expand Down
Loading
Loading