// Conversation Center wiring contracts (Epic #189, Issue #200). The conversation/ layer
// is the *integration seam* that exposes the #199 retrieval pipeline to the Conversation
// Center BFF. The BFF (in `packages/keiko-server`, out of scope here) calls
// `runGroundedAnswer` when a chat user submits a question with a CapsuleSet (or single
// Capsule) selected; the runner composes retrieval + grounded-context assembly + an
// injected `AnswerGenerator` and returns a structured answer with mapped citations.
//
// Three shapes live here:
//   * `ConversationGroundedQuery` — the BFF's input. Exactly one of `capsuleId` or
//     `capsuleSetId` may be set (the runner enforces this; "neither" surfaces as a
//     `no-scope` answer, the same contract the underlying retrieval runner uses).
//   * `ConversationGroundedAnswer` — the BFF's output. Carries the answer text, the
//     citations the answer is grounded in, the verbatim `LocalKnowledgeGroundedContextPack`
//     (so the audit ledger can persist the same shape #199 already documents), and the
//     `noEvidence` flag the UI uses to phrase its message.
//   * `AnswerGenerator` — the injectable port that turns a context pack into an answer
//     string. The runner takes the port; the package ships two implementations:
//     `ScriptedAnswerGenerator` (deterministic, test fixture) and
//     `ModelGatewayAnswerGenerator` (production, calls `Gateway.chat`).
//
// `ConversationGroundedAnswer.references` is the SAME `RetrievalReference` array the pack
// was assembled from — the BFF and audit ledger need both the human-readable citation
// metadata (in `pack.citations`) and the score-bearing retrieval refs (here) without
// re-deriving one from the other.
export {};
