chore: release package#1650
Merged
Merged
Conversation
a0f268f to
3a12a3f
Compare
3a12a3f to
6f9a089
Compare
6f9a089 to
438a961
Compare
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@adcp/sdk@6.19.0
Minor Changes
29e76a9: feat(types): tighten
Format.assetstyping and emit named slot unions + Zod schemasCloses Codegen: Zod schemas for FormatAssetSlot, and tighten Format.assets typing #1652.
The codegen post-processor that restored the
asset_typediscriminator onIndividual*Assetslot types (fix(codegen): preserve asset_type discriminator on IndividualImageAsset / IndividualVideoAsset / IndividualHTMLAsset #1498) now also:*AssetRequirementstypes intotools.generated.tsfromcore.generated.ts, so the per-slotrequirements?:field is preserved on everyIndividualImageAsset/IndividualVideoAsset/ … exported from the tools surface (previously missing — a downstream cast pattern).asset_type+requirementsdiscriminator on the 12Group*Assetshapes insideRepeatableGroupAsset.assets[].IndividualAssetSlot,GroupAssetSlot, andFormatAssetSlotunions in bothcore.generated.tsandtools.generated.ts, and tightensFormat.assets?: FormatAssetSlot[]andRepeatableGroupAsset.assets: GroupAssetSlot[]to reference them.IndividualAssetSlotSchema,GroupAssetSlotSchema,FormatAssetSlotSchema, and per-typeIndividualImageAssetSchema { asset_type, requirements }/GroupImageAssetSchema { asset_type, requirements }carrying the requirements branch.Consumer impact:
Format.assets[i]narrows correctly:slot.asset_type === 'image'now givesslot.requirements: ImageAssetRequirements | undefinedfor free. The cast pattern from Codegen: Zod schemas for FormatAssetSlot, and tighten Format.assets typing #1652's worked example goes away.IndividualAssetSlotSchema,GroupAssetSlotSchema, orFormatAssetSlotSchemafrom@adcp/sdkinstead of forking a localz.union([...])over the per-type schemas.src/lib/types/format-asset-slots.tsshim is reduced to thin*Slotaliases over the codegen names. Consumers importingIndividualImageAssetSlotetc. continue to work; the underlying type is now identical to the spec-derivedIndividualImageAsset. Optionality note: the prior hand-authored shim modeledrequirementsas required on the*Slottypes; it is now optional (?:) to match the spec, where the field appears inpropertiesbut never inrequired. Adopters that destructuredslot.requirementsand treated the value as defined will need to handleundefinedor assert.briefGroupAsset,catalogGroupAsset) are removed from@adcp/sdk's public exports. The spec doesn't includebrieforcataloginRepeatableGroupAsset.assets[].oneOf, so calling these always produced an object that would fail wire-schema validation. Treated as a bug-fix removal under the minor bump rather than a breaking contract change. The 12 valid*GroupAssetbuilders (and theirFormatAsset.group*namespace entries) are unchanged.Patch Changes
126dd1e: chore: bump AdCP pin to 3.0.10
Picks up adcontextprotocol/adcp v3.0.10 — a storyboard-only patch that converts the 12 remaining static
idempotency_keyliterals across error, governance, signal, schema-validation, and creative-ad-server compliance scenarios to$generate:uuid_v4#<alias>form. Closes the static-key sweep for the 3.0.x line so storyboard re-runs against any spec-compliant seller no longer collide with the seller's idempotency cache after deploys.No schema shape changes. Regen diff is metadata only (
adcp_versionstrings + the entity-hydration map's source-version comment).0c41b3a: fix(storyboard): proposal-mode enricher respects fixture's explicit
packagesover auto-capturedcontext.proposal_idPR fix(storyboard): proposal-mode create_media_buy request shape (closes #1600) #1603 introduced proposal-mode in the
create_media_buyrequest enricher by readingcontext.proposal_id.context.proposal_idis auto-captured bycontext.ts::get_products()from any priorget_productsresponse that returnedproposals[0].proposal_id— which is essentially every brief flow against a seller that supports proposal-mode discovery.The enricher fell back to
context.proposal_idwhenever the fixture didn't explicitly setproposal_id. That meant a storyboard authoringpackagesdirectly insample_requestwould still have its packages dropped in favor of the auto-captured proposal — forcing every sales storyboard whose brief returned proposals through the seller's strict proposal-lifecycle validation.Concrete impact (surfaced when consuming sellers like
test-agent.adcontextprotocol.orgthat enforce proposal-status / IO-acceptance / total_budget rules onproposal_id-shaped requests):sales_guaranteed,sales_non_guaranteed,schema_validation,media_buy_seller/*,creative_generative/seller, and similar package-mode storyboards regressed below their step floors withPROPOSAL_NOT_COMMITTEDerrors.Fix: the enricher now reads
context.proposal_idonly when the fixture authors NEITHERproposal_idNORpackages. Fixture intent wins:proposal_idsetpackagesset, noproposal_idcontext.proposal_idset; otherwise package-modeTests added for all four cases; existing
hello_seller_adapter_proposal_modeintegration coverage continues to pass (proposal-mode storyboards explicitly authorproposal_id).Patch-eligible per the additive-fix rule: behavior aligns with the original PR fix(storyboard): proposal-mode create_media_buy request shape (closes #1600) #1603 intent (proposal-mode for proposal-mode storyboards), only narrows the over-applied fallback that was masking the proposal-validation path entirely.