OptionalmodelOverride: PromptModelConfigProtected Optional ReadonlymodelProtected ReadonlyoutputStructured shape the model must return. Stays in code (the hub resolves text + model).
Protected ReadonlysnapshotCommitted cold-start snapshot (hub name, template, model).
Hub identifier — derived from the committed snapshot.
ProtectedbuildBuild the ChatOpenAI instance from the already-resolved config — resolve has applied any
override by this point. Tests override this to inject a fake.
ProtectedbuildPure: map typed input to the hub template's variables. Unit-testable without an LLM.
Optionalctx: RunnerContextResolve + format the prompt text without invoking the model. Useful for inspection, tests, and tooling that only needs the rendered string.
ProtectedtraceNon-PII only. fileName is excluded deliberately — form titles carry patient names.
Tags a chart from our own vocabulary, summarizes it, and pulls out its dates.