# 听娜娜讲故事 `nana-story` 是一个本地优先、纯 BYOK 的 AI 对话游戏。V1 聚焦一段可回溯、可分支、状态可重放的单角色纵切。 ## 当前阶段 M0:工程骨架与领域契约冻结。 已建立: - Tauri 2 + Vue 3 + TypeScript 工程; - Rust workspace 与模块所有权边界; - Rust 领域类型作为契约唯一事实来源; - 生成的 JSON Schema 与 TypeScript DTO; - canonical `PlayerView` fixture; - 最小娜娜内容包; - 静态主演出屏与窄 Tauri 命令。 ## 开发 要求: - Node.js 24+ - pnpm 10.29.2 - Rust 1.96 - 与本仓库同级的 `lapp-rs`,固定到 `lapp-rs.lock` 中的提交 ```text workspace/ ├─ lapp-rs/ └─ nana-story/ ``` ```bash pnpm install pnpm verify pnpm tauri dev ``` 只验证前端和已提交契约时可运行: ```bash pnpm verify:web ``` ## 边界 - 模型供应商协议与凭据处理属于 `lapp-rs`。 - 前端只接收 `PlayerView`,不会得到完整 `RuntimeState`。 - V1 不使用向量记忆库、导演 Agent 或多个完整角色。 - 模型与前端都不能直接修改运行时状态。