Files
zeekay df6ebe0690 feat(mobile): scaffold Hanzo AI mobile app (Tauri v2 + React 19 + @hanzo/gui)
Self-contained mobile/ app (not in any workspace):
- Tauri v2 shell (productName "Hanzo AI", id ai.hanzo.chat) with fs + http
  plugins, scoped capabilities (fs: ~/.codex ~/.claude ~/.hanzo; http:
  chatgpt.com, api.anthropic.com, api.hanzo.ai, claude.ai, hanzo.chat).
- React 19 + Vite + @hanzo/gui (createGui + defaultConfig from
  @hanzogui/config/v5). Three state-nav screens: Chat, Sessions, Usage.
- Chat -> POST /api/agents/v1/chat/completions (OpenAI-compatible);
  Sessions -> GET /api/convos; both Bearer-auth. Usage via @hanzo/usage
  (createTauriHost + useUsage), connect empty-state outside Tauri.
- Bearer token via VITE_CHAT_TOKEN or paste screen (localStorage); IAM TODO.
- Rust engine/node feature flags OFF by default; cfg-gated engine_status +
  device_register stubs pointing at hanzoai/engine + hanzoai/node.

vite build green; cargo check green (default + engine,node).
2026-07-07 15:29:38 -07:00

39 lines
1007 B
TOML

[package]
name = "hanzo-chat-mobile"
version = "0.1.0"
description = "Hanzo AI mobile app"
authors = ["Hanzo AI Inc"]
edition = "2021"
rust-version = "1.77.2"
[lib]
# Tauri mobile targets build the app as a shared library; a `_lib` suffix keeps
# the name from colliding with the desktop binary crate on Windows.
name = "hanzo_chat_mobile_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = [] }
tauri-plugin-fs = "2"
tauri-plugin-http = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[features]
# On-device AI seams — OFF by default so the default build stays dependency-light
# and `cargo check` needs no model runtime. Turning these on is where the
# hanzoai/engine (inference) and hanzoai/node (device mesh) crates get wired in.
default = []
engine = []
node = []
[profile.release]
panic = "abort"
codegen-units = 1
lto = true
opt-level = "s"
strip = true