Add the play table's store and loop (Cut 8a)
PlayTurnStore (one row, over service/play-turn-v1.cc) and PlayTable run a role-playing turn over Dungeon's PLAY_TOOLS subset of the library's authoring catalog plus dispatch/advance_time/ask_player/end_turn. The agent's conversation re-derives each round from opening_prompt, the recorded InferenceOutputs, and each call's persisted body/result, so nothing but world state crosses a turn boundary. Authoring calls commit in maximal per-round runs through one commit_authoring_run seam (fix batch 7a's batching rule); each call still submits as its own one-item patch until the library ships a batch decoder. Actor calls quote-check against the player's own texts or a dispatched Persona's recorded turn before submitting through submit_principal or ControllerPort, and a kernel Invariant from any commit poisons the table until restart. Wiring into AppState, GHOSTLIGHT_PLAY_MODEL, world.play routing, and the Eve schema is Cut 8b. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
4d071abc48
commit
6b69270a34
4 changed files with 2481 additions and 0 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
|
@ -696,6 +696,7 @@ dependencies = [
|
|||
"cultmesh-rs",
|
||||
"cultnet-rs",
|
||||
"ghostlight",
|
||||
"ghostlight-persona-projection",
|
||||
"hmac",
|
||||
"jsonwebtoken",
|
||||
"libc",
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ jsonwebtoken.workspace = true
|
|||
libc = "0.2"
|
||||
hmac.workspace = true
|
||||
ghostlight = { path = "../ghostlight" }
|
||||
ghostlight-persona-projection = { path = "../ghostlight-persona-projection" }
|
||||
rand.workspace = true
|
||||
reqwest.workspace = true
|
||||
rmp-serde.workspace = true
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ mod eve;
|
|||
mod heimdall;
|
||||
mod idunn_health;
|
||||
mod mesh;
|
||||
#[allow(dead_code)]
|
||||
mod play;
|
||||
mod runtime;
|
||||
|
||||
use anyhow::bail;
|
||||
|
|
|
|||
2477
crates/ghostlight-dungeon/src/play.rs
Normal file
2477
crates/ghostlight-dungeon/src/play.rs
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue