MRPCI/mrpci-core/Cargo.toml
m3ultra 0191b4680d v0.3 — AI parser lane + dialogue talker portraits
AI lane (ported from MRPGI): unknown typed sentences go to a local LLM (MRPCI_AI: ollama default / openrouter / off) that maps them onto already-legal commands; one in flight, polled per tick, hard-off under --script so replays stay byte-identical. Portraits: NPCs/props gain a portrait sprite drawn beside the dialogue window in the GUI (6x) and annotated frames (2x); sergeant + vend-bot faces in the demo. Also: --script + --render-room renders the frame a replay ends on. Verified: 5 test suites green, deterministic 25/25 playthrough, GUI boots.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 00:26:03 +10:00

25 lines
1.1 KiB
TOML

[package]
name = "mrpci-core"
version = "0.1.0"
edition = "2021"
description = "MRPCI headless engine core — the SCI-generation sim: 256-color rooms, walkbox pathfinding, rhai scripts, and the command/event bus. Zero windowing dependencies: a compile error is the guardrail."
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
image = { version = "0.24", default-features = false, features = ["png"] } # PNG-only: lean builds
# Room logic. "sync" keeps the engine Send+Sync (the HTTP surface shares
# GameState across threads); "no_time" bans wall-clock from scripts, so a
# replayed script is bit-identical — the whole CPU-speed-bug class, deleted.
rhai = { version = "1", features = ["sync", "no_time"] }
# Native-only: the HTTP surface and the AI parser lane don't exist in
# browser builds (wasm gets the deterministic parser and bundles).
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tiny_http = "0.12" # the --serve control surface
ureq = { version = "2", features = ["json", "tls"] } # AI parser lane: Ollama / OpenRouter HTTP
[[bin]]
name = "mrpci-headless"
path = "src/bin/mrpci-headless/main.rs"