The pack holding the template
The agent template's key
One model per role
Optionaloverrides: Partial<PromptFolderDefaults>
Anything the caller wants to change, e.g. the agent's name
The agent's id and anything that did not go to plan
Builds a room from a pack's room template, with its whole cast.
The pack holding the template
The room template's key
One model per role the templates ask for
Optionalname: string
Overrides the template's room name
Optionaloverrides: RosterOverrides
Per-agent changes, keyed by roster key — most usefully
{ player: { agentNickname: 'Homer' } }. Applied over the template's own
overrides, which are applied over the prompt folder's defaults
The room, its agents, and anything that did not go to plan
Builds a single free-standing agent from a pack's agent template.
Free-standing rather than room-owned: this is the "preconfigured witness with the right statements attached" case, which has to be usable before any courtroom exists.