Add typed pair route contracts

This commit is contained in:
2026-06-27 10:49:58 +02:00
parent 2c978c7eab
commit 28612f9d00
7 changed files with 439 additions and 74 deletions
+15 -12
View File
@@ -290,22 +290,25 @@ Already isolated:
policy, plus hardcore detail-density directive text, live in
`pair_options.py`; `prompt_builder.py` keeps public delegate wrappers for
existing nodes and tests.
- soft/hard row creation lives in `pair_rows.py`, including softcore expression
override resolution, Woman A slot context application, soft outfit/pose
overrides, POV row fields, and hardcore row creation.
- soft/hard row creation lives in `pair_rows.py` behind `InstaPairRowsRoute`,
including softcore expression override resolution, Woman A slot context
application, soft outfit/pose overrides, POV row fields, hardcore row
creation, and legacy dict compatibility.
- pair-level cast/display context lives in `pair_cast.py`, including descriptor
prose, descriptor-entry assembly, shared descriptors, cast-label cleanup,
same-cast softcore descriptor text, partner styling, platform and level
labels, softcore cast presence text, and hard cast summary text.
- pair-level camera routing lives in `pair_camera.py`, including soft/hard
camera config selection, same-as-softcore mode, camera-detail override,
same-room hard scene continuity, camera-aware composition mutation, POV camera
suppression, and row/root camera metadata synchronization.
- pair-level clothing policy lives in `pair_clothing.py`, including clothing
sentence formatting, body-exposure scene cleanup, action-aware body-access
flags, conflicting outfit-piece cleanup, default visible-men clothing,
character-clothing override handling, hardcore clothing continuity, and final
root clothing-state assembly.
- pair-level camera routing lives in `pair_camera.py` behind
`InstaPairCameraRoute`, including soft/hard camera config selection,
same-as-softcore mode, camera-detail override, same-room hard scene
continuity, camera-aware composition mutation, POV camera suppression,
row/root camera metadata synchronization, and legacy dict compatibility.
- pair-level clothing policy lives in `pair_clothing.py` behind
`HardcorePairClothingRoute`, including clothing sentence formatting,
body-exposure scene cleanup, action-aware body-access flags, conflicting
outfit-piece cleanup, default visible-men clothing, character-clothing
override handling, hardcore clothing continuity, final root clothing-state
assembly, and legacy dict compatibility.
- final pair output assembly lives in `pair_output.py`, including soft/hard
prompt strings, trigger preservation, negatives, captions, and root metadata
shape; the final cleanup step is delegated to `row_normalization.py`.