Skip to content

feat(node): Add responses.create to orchestrion OpenAI integration - #21880

Merged
nicohrubec merged 1 commit into
nh/openai-orchestrionfrom
nh/openai-orchestrion-responses
Jul 1, 2026
Merged

feat(node): Add responses.create to orchestrion OpenAI integration#21880
nicohrubec merged 1 commit into
nh/openai-orchestrionfrom
nh/openai-orchestrion-responses

Conversation

@nicohrubec

Copy link
Copy Markdown
Member

Stacked on #21877 (base: nh/openai-orchestrion) — review/merge that first.

Adds a diagnostics-channel (orchestrion) path for non-streaming responses.create, alongside the chat.completions.create support from the parent PR. responses.create maps to the chat operation (same gen_ai.chat span shape as chat completions), matching the proxy's OPENAI_METHOD_REGISTRY.

No new attribute logic: addResponseAttributes already handles the Responses shape (status → finish_reasons, output_text → response text, output[].type === 'function_call' → tool calls, input_tokens/output_tokens). Tool-call capture therefore works for responses.create for free. The subscriber is generalized from a single hardcoded channel to a { channel, operation } table.

Changes:

  • orchestrion/channels.ts: add OPENAI_RESPONSES: 'orchestrion:openai:responses'.
  • orchestrion/config.ts: inject Responses.create (resources/responses/responses.js + .mjs).
  • integrations/tracing-channel/openai.ts: subscribe to both channels via the operation table; createChatSpancreateGenAiSpan(data, operation, options).
  • Extend the orchestrion integration test with responses assertions (recording-disabled + PII).

Scope: non-streaming only. Streaming and embeddings/conversations remain follow-ups.

🤖 Generated with Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.62 kBaddedadded
@sentry/browser - with treeshaking flags26.05 kBaddedadded
@sentry/browser (incl. Tracing)46.07 kBaddedadded
@sentry/browser (incl. Tracing + Span Streaming)47.82 kBaddedadded
@sentry/browser (incl. Tracing, Profiling)50.84 kBaddedadded
@sentry/browser (incl. Tracing, Replay)85.31 kBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.91 kBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)89.99 kBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)102.67 kBaddedadded
@sentry/browser (incl. Feedback)44.8 kBaddedadded
@sentry/browser (incl. sendFeedback)32.42 kBaddedadded
@sentry/browser (incl. FeedbackAsync)37.55 kBaddedadded
@sentry/browser (incl. Metrics)28.68 kBaddedadded
@sentry/browser (incl. Logs)28.93 kBaddedadded
@sentry/browser (incl. Metrics & Logs)29.61 kBaddedadded
@sentry/react29.41 kBaddedadded
@sentry/react (incl. Tracing)48.38 kBaddedadded
@sentry/vue32.85 kBaddedadded
@sentry/vue (incl. Tracing)47.93 kBaddedadded
@sentry/svelte27.64 kBaddedadded
CDN Bundle30.02 kBaddedadded
CDN Bundle (incl. Tracing)48.02 kBaddedadded
CDN Bundle (incl. Logs, Metrics)31.58 kBaddedadded
CDN Bundle (incl. Tracing, Logs, Metrics)49.35 kBaddedadded
CDN Bundle (incl. Replay, Logs, Metrics)70.79 kBaddedadded
CDN Bundle (incl. Tracing, Replay)85.51 kBaddedadded
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.79 kBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)91.32 kBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.56 kBaddedadded
CDN Bundle - uncompressed89.42 kBaddedadded
CDN Bundle (incl. Tracing) - uncompressed145.35 kBaddedadded
CDN Bundle (incl. Logs, Metrics) - uncompressed94.12 kBaddedadded
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed149.32 kBaddedadded
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.66 kBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed264.36 kBaddedadded
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.32 kBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.06 kBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.01 kBaddedadded
@sentry/nextjs (client)50.76 kBaddedadded
@sentry/sveltekit (client)46.46 kBaddedadded
@sentry/core/server77.77 kBaddedadded
@sentry/core/browser64.07 kBaddedadded
@sentry/node-core61.47 kBaddedadded
@sentry/node122.07 kBaddedadded
@sentry/node/import (ESM hook with diagnostics-channel injection)69.95 kBaddedadded
@sentry/node/light50.45 kBaddedadded
@sentry/node - without tracing73.2 kBaddedadded
@sentry/aws-serverless84.09 kBaddedadded
@sentry/cloudflare (withSentry) - minified180.62 kBaddedadded
@sentry/cloudflare (withSentry)446.93 kBaddedadded

Adds a diagnostics-channel (orchestrion) path for non-streaming
`responses.create`, alongside the existing `chat.completions.create`. Reuses
the shared core attribute helpers (responses shape already handled) and
generalizes the subscriber to a per-channel operation table.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@nicohrubec
nicohrubecforce-pushed the nh/openai-orchestrion-responses branch from b33f3cf to a65ccd5CompareJuly 1, 2026 11:44
@nicohrubec
nicohrubec merged commit a65ccd5 into nh/openai-orchestrionJul 1, 2026
5 checks passed
@nicohrubec
nicohrubec deleted the nh/openai-orchestrion-responses branch July 1, 2026 11:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nicohrubec