Add OpenAI JSON Schema (structured output) support to $gpt#1865
Merged
Conversation
Copilot
AI
changed the title
[WIP] Add support for OpenAI Responses API in owrap.ai.js
Add OpenAI JSON Schema (structured output) support to $gpt
Jul 4, 2026
Implement the /responses endpoint integration in owrap.ai.js, including response schema normalization, input text conversion, and error handling. Update AI tests to verify the new responses endpoint usage and JSON schema formatting.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The OpenAI provider lacked support for the
response_format: json_schemamode, which enforces server-side schema validation and guarantees structured JSON output from the model.Changes
js/owrap.ai.jsrawResponse(OpenAI provider) — new low-level method mirroringrawPromptbut setsresponse_format: { type: "json_schema", json_schema: { name, description, schema, strict } }. Integrates with conversation history, debug channels, and stats capture. Defaults:description → "API Response",strict → true.jsonSchemaPrompt(aPrompt, aResponseSchema, aModel, aTemperature, tools)— prototype method that callsrawResponseand returns the parsed JSON. Throws for providers that don't implementrawResponse.jsonSchemaPromptWithStats(...)— same, returns{ response, stats }.$gpt.jsonSchemaPrompt / $gpt.jsonSchemaPromptWithStats— convenience wrappers on the global$gptobject.tests/autoTestAll.AI.{js,yaml}Five new unit tests (all using mock
_request): raw request structure, response parsing, stats capture, schema defaults, and unsupported-provider error.Usage