tektra 0.2.2

A voice-interactive AI assistant with multimodal capabilities
[package]
name = "tektra"
version = "0.2.2"
description = "A voice-interactive AI assistant with multimodal capabilities"
authors = ["David Irvine <david.irvine@maidsafe.net>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/dirvine/tektra"
homepage = "https://github.com/dirvine/tektra"
readme = "../README.md"
keywords = ["ai", "assistant", "voice", "tauri", "gemma"]
categories = ["command-line-utilities", "multimedia::audio"]
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[build-dependencies]
tauri-build = { version = "1.5", features = [] }

[dependencies]
tauri = { version = "1.6", features = [ "fs-read-dir", "fs-rename-file", "fs-write-file", "fs-read-file", "http-all", "dialog-ask", "fs-copy-file", "notification-all", "dialog-open", "dialog-save", "fs-create-dir", "fs-exists", "dialog-confirm", "fs-remove-dir", "shell-open", "dialog-message", "fs-remove-file"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1", features = ["full"] }

# ML Dependencies for TinyLlama
hf-hub = { version = "0.3", features = ["tokio"] }
anyhow = "1.0"
tracing = "0.1"
tracing-subscriber = "0.3"
reqwest = { version = "0.11", features = ["json", "stream", "blocking"] }
dirs = "5.0"
futures = "0.3"
bytesize = "1.3"
# Audio processing
cpal = "0.15"
hound = "3.5"
# rubato = "0.15"  # For resampling if needed later

# Speech processing
whisper-rs = "0.11"  # For Whisper STT
# ort = "2.0"  # ONNX Runtime for Silero VAD when ready

# Legacy dependencies removed - using Ollama for model management

# Ollama integration for reliable model management
ollama-rs = { version = "0.3.2", features = ["stream", "tokio"] }
ollama_td = "0.4.0"
async-trait = "0.1"


# For downloading models
# (already have hf-hub, reqwest, futures, dirs)

# For camera/video input
nokhwa = { version = "0.10", features = ["input-avfoundation"] }

# For avatar rendering (3D - not needed for 2D canvas)
# wgpu = "0.20"

# For base64 encoding
base64 = "0.22"

# For image encoding
png = "0.17"

# For half precision float handling
half = "2.4"

# Multimodal support dependencies
image = { version = "0.25.2", features = ["jpeg", "png", "gif", "webp", "tiff"] }
symphonia = { version = "0.5.4", features = ["mp3", "aac", "flac", "wav"] }

# Video processing (conditionally compiled for platforms that support it)
[target.'cfg(not(target_os = "windows"))'.dependencies]
ffmpeg-next = { version = "7.0.0", optional = true }

# Computer vision and image processing
imageproc = "0.25.0"
nalgebra = "0.33.0"  # Linear algebra for image transformations

# Multimodal data visualization and debugging
# rerun = { version = "0.18.2", optional = true } # Disabled due to wasm-bindgen conflicts

# Feature flags for optional components
[features]
default = ["video-processing"]
video-processing = ["ffmpeg-next"]
# debug-tools = ["rerun"] # Disabled due to wasm-bindgen conflicts
# full-multimodal = ["video-processing", "debug-tools"] # Disabled due to wasm-bindgen conflicts

[[bin]]
name = "tektra"
path = "src/main.rs"

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true