Repository navigation
compatibility: cover AI SDK structured outputs - #553
Merged
Merged
Conversation
Measure schema forwarding, client parsing and accounting across both chat bases. Retain stream persistence errors even when the client can resolve an object from previously delivered text. Closes #552 Assisted-by: Codex Signed-off-by: sjungwon03 <sjungwon03@gmail.com>
sjungwon03-ai
approved these changes
Oct 28, 2026
sjungwon03-ai
left a comment
Member
There was a problem hiding this comment.
Review summary
Verdict: Approved
- Reviewed: Structured-object schema forwarding, client parsing and extra-property behavior, admission and persistence gates, native-provider rejection, privacy assertions, and matching contract documentation across both API bases.
- Checks: All three GitHub checks passed; 258 focused AI SDK/response-format tests, TypeScript typecheck, focused Biome validation, and planning/link/fixture-secret validation passed locally.
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.
Closes #552. Refs #116; unresolved Jev #7 remains unchanged.
Actual pinned Output.object now exercises generateText/streamText on both bases through managed OpenAI/delegated OpenRouter, asserting exact schema/name/description/strict delivery. Forty-eight new cases cover valid/malformed/type-mismatched/extra-property output, admission/required persistence failures and native Anthropic/Gemini pre-secret schema rejection. No production code, pins, dependencies or storage change.
Measured client boundaries matter for accounting: malformed/wrong-type output raises a content-bearing NoObjectGeneratedError after successful provider completion/usage. Default Zod strips extra properties while gateway text stays exact. After a streaming audit/usage error the SDK may still resolve an object from delivered text, even though the server emits an error and withholds actual final usage/DONE. Parsed objects and client finish events must not be treated as server persistence acknowledgments or full returned-instance conformance.
Plan: 552-ai-sdk-structured-output. Contracts: AI SDK workflows, response formats. Reproduction: structured objects.
Validation:
The branch began independently from fcb40ea and updated onto approved c22b303 after PR #551 received approval/green CI and merged. Other Output modes/partial-object semantics, native mappings, server-side validation/repair, live provider guarantees, other SDK versions and full #116 remain uncertified.