52 lines
1.1 KiB
Markdown
52 lines
1.1 KiB
Markdown
# 听娜娜讲故事
|
||
|
||
`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 或多个完整角色。
|
||
- 模型与前端都不能直接修改运行时状态。
|