Summary
Add a "responses" flavor to prompt.build() that returns { input, model, ... } compatible with openai.responses.create(), eliminating the need for manual messages → input reshaping.
Context
Use case: Users of loadPrompt() + prompt.build() with the OpenAI Responses API must manually rename messages → input after every build() call. The Responses API uses input where Chat Completions uses messages, but the structures are identical — this is purely a key rename with no semantic change.
Current workaround: Use chat flavor and rename the key manually:
const compiled = prompt.build(variables); // { messages, model, ... }
const response = await openai.responses.create({
model: compiled.model,
input: compiled.messages, // manual rename required
});
Component: TypeScript SDK — sdk/js/src/logger.ts:7549
Requirements
Must have:
- New
"responses" flavor in build<Flavor extends "chat" | "completion" | "responses">() at logger.ts:7549
- Returns
{ input: Message[], model, ... } instead of { messages: Message[], model, ... }
- Type-safe:
CompiledPrompt<"responses"> should reflect the input key
- Parity with
buildWithAttachments() — same flavor option added there
Should, could, or won't have:
- Python SDK equivalent (assume we will never get to this)
- Auto-detection of Responses API usage to select flavor automatically
Linear issue: https://linear.app/braintrustdata/issue/BT-4754/typescript-sdk-add-flavor-responses-option-to-promptbuild-for-openai
Summary
Add a
"responses"flavor toprompt.build()that returns{ input, model, ... }compatible withopenai.responses.create(), eliminating the need for manualmessages→inputreshaping.Context
Use case: Users of
loadPrompt()+prompt.build()with the OpenAI Responses API must manually renamemessages→inputafter everybuild()call. The Responses API usesinputwhere Chat Completions usesmessages, but the structures are identical — this is purely a key rename with no semantic change.Current workaround: Use chat flavor and rename the key manually:
Component: TypeScript SDK —
sdk/js/src/logger.ts:7549Requirements
Must have:
"responses"flavor inbuild<Flavor extends "chat" | "completion" | "responses">()atlogger.ts:7549{ input: Message[], model, ... }instead of{ messages: Message[], model, ... }CompiledPrompt<"responses">should reflect theinputkeybuildWithAttachments()— same flavor option added thereShould, could, or won't have:
Linear issue: https://linear.app/braintrustdata/issue/BT-4754/typescript-sdk-add-flavor-responses-option-to-promptbuild-for-openai