ikigai-cli 0.1.14

ikigai — a REPL client for resource-resolution kernels (native + WebAssembly).
[package]
name = "ikigai-cli"
description = "ikigai — a REPL client for resource-resolution kernels (native + WebAssembly)."
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true

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

[features]
default = ["embedded", "ipc"]
embedded = ["dep:ikigai-embedded"]
ipc = ["dep:ikigai-ipc"]   # Unix only; the dep is empty elsewhere
quic = ["dep:ikigai-quic", "dep:ikigai-discovery", "dep:ikigai-wire"] # opt-in; pulls quinn/rustls/tokio
web = ["dep:ikigai-web", "dep:tokio", "dep:serde_yaml"] # opt-in inbound HTTP face; pulls Tokio (like quic)

[dependencies]
async-trait = "0.1"
ikigai-core = { workspace = true }
# Sibling crates carry an explicit version (required to publish) pinned to this
# release, so the binary always resolves them at the matching lockstep version.
ikigai-engine = { path = "../ikigai-engine", version = "0.1.6" }
ikigai-resolve = { workspace = true }
serde_json = { workspace = true }
ikigai-embedded = { path = "../ikigai-embedded", version = "0.1.6", optional = true }
ikigai-mcp = { path = "../ikigai-mcp", version = "0.1.12" } # row collapse: every same-named manifold row stays reachable
ikigai-ipc = { path = "../ikigai-ipc", version = "0.1.13", optional = true } # heal-on-use: a broken established connection redials
ikigai-quic = { path = "../ikigai-quic", version = "0.1.6", optional = true }
# mDNS announce/browse. Rides the `quic` feature: the only thing worth finding on the
# network is a QUIC-served kernel.
ikigai-discovery = { path = "../ikigai-discovery", version = "0.1.9", optional = true }
ikigai-wire = { workspace = true, optional = true }
# Inbound HTTP face — workspace-local (path only, not published), gated behind `web`.
ikigai-web = { workspace = true, optional = true }
# A runtime for the `web` serve loop (ikigai-web is async). Feature-gated so the
# default/wasm binary never pulls Tokio; matches the `quic` transport's posture.
# net+time so the runtime's `enable_all()` has the io+time drivers on its own.
tokio = { version = "1", features = ["rt-multi-thread", "net", "time"], optional = true }
# YAML authoring of the non-LD route table (parses to the same value tree as JSON). Only the
# `web`-featured loader uses it. (serde_yaml 0.9 is archived-but-stable; swap to serde_yml if
# a maintained fork is preferred.)
serde_yaml = { version = "0.9", optional = true }

# The full-screen TUI is native-only (crossterm). The browser frontend (ratzilla)
# lands in a later slice; on wasm the binary falls back to the line REPL.
[target.'cfg(not(target_family = "wasm"))'.dependencies]
ratatui = "0.30.1"
crossterm = "0.29.0"