Files
nana-story/README.md
T

58 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 听娜娜讲故事
`nana-story` 是一个本地优先、纯 BYOK 的 AI 对话游戏。V1 聚焦一段可回溯、可分支、状态可重放的单角色纵切。
## 当前阶段
M0 契约基线已建立;M1/M2 第一批可并行能力已集成。
目前包括:
- Tauri 2 + Vue 3 + TypeScript 工程;
- Rust workspace 与模块所有权边界;
- Rust 领域类型作为契约唯一事实来源;
- 生成的 JSON Schema 与 TypeScript DTO
- canonical `PlayerView` fixture
- 最小娜娜内容包;
- 原子化状态 reducer,覆盖关系、许诺、知识、持有物、时钟与判定;
- 可验证追加、恢复和回溯分叉语义的内存 StoryStore
- Turn 请求/结果校验、Fake Provider 与确定性世界书触发;
- 可交互的主演出屏、持有物/线索/许诺、关系与回溯面板。
浏览器模式目前使用确定性的本地 Turn adapter。SQLite、真实 LAPP Turn
循环和分支持久化仍在后续里程碑中。
## 开发
要求:
- 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 或多个完整角色。
- 模型与前端都不能直接修改运行时状态。