Skip to content

TypeScript SDK: Add { flavor: 'responses' } option to prompt.build() for OpenAI Responses API #1826

@AbhiPrasad

Description

Summary

Add a "responses" flavor to prompt.build() that returns { input, model, ... } compatible with openai.responses.create(), eliminating the need for manual messagesinput reshaping.

Context

Use case: Users of loadPrompt() + prompt.build() with the OpenAI Responses API must manually rename messagesinput 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

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions