-
Notifications
You must be signed in to change notification settings - Fork 15
Version Packages #165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
github-actions
wants to merge
1
commit into
main
Choose a base branch
from
changeset-release/main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Version Packages #165
+676
−689
Conversation
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
471cb8d to
0198b59
Compare
0198b59 to
6e0ec36
Compare
6e0ec36 to
a587f83
Compare
a587f83 to
726a493
Compare
726a493 to
0e0ee51
Compare
0e0ee51 to
74c6b1d
Compare
74c6b1d to
1f238ea
Compare
1f238ea to
e0b7538
Compare
e0b7538 to
00db747
Compare
00db747 to
5e0bc16
Compare
5e0bc16 to
75c4334
Compare
75c4334 to
d15aa40
Compare
d15aa40 to
0be94c0
Compare
0be94c0 to
10f8334
Compare
10f8334 to
1406218
Compare
1406218 to
c78189c
Compare
c78189c to
9c7615e
Compare
9c7615e to
5acf0dc
Compare
5acf0dc to
e5701a1
Compare
e5701a1 to
3549483
Compare
3549483 to
b89fcfd
Compare
b89fcfd to
0a82c4a
Compare
0a82c4a to
68efcef
Compare
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 publish to npm yourself or setup this action to publish 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
adcontextprotocol@2.5.0
Minor Changes
cbc95ae: Add explicit discriminator fields to discriminated union types for better TypeScript type generation
Schema Changes:
selection_typediscriminator ("by_id" | "by_tag") topublisher_propertiesitemsauthorization_typediscriminator ("property_ids" | "property_tags" | "inline_properties" | "publisher_properties") toauthorized_agentsitems, and nestedselection_typediscriminator topublisher_propertiesarraysitem_typediscriminator ("individual" | "repeatable_group") toassets_requireditemsRationale:
Without explicit discriminators, TypeScript generators produce poor types - either massive unions with broken type narrowing or generic index signatures. With discriminators, TypeScript can properly narrow types and provide excellent IDE autocomplete.
Migration Guide:
All schema changes are additive - new required discriminator fields are added to existing structures:
Product Schema (
publisher_properties):AdAgents Schema (
authorized_agents):Format Schema (
assets_required):Note: The
repeatablefield has been removed from format.json as it's redundant with theitem_typediscriminator.Validation Impact:
Schemas now have stricter validation - implementations must include the discriminator fields. This ensures type safety and eliminates ambiguity when parsing union types.
161cb4e: Add required package-level pricing fields to delivery reporting schema to match documentation.
Schema Changes:
pricing_modelfield toby_packageitems inget-media-buy-delivery-response.jsonratefield toby_packageitems for pricing rate informationcurrencyfield toby_packageitems to support per-package currencyThese required fields enable buyers to see pricing information directly in delivery reports for better cost analysis and reconciliation, as documented in the recently enhanced reporting documentation (Enhance Reporting Documentation: Add Package Pricing Fields and add offline file delivery report example #179).
a8471c4: Enforce atomic operation semantics with success XOR error response pattern. Task response schemas now use
oneOfdiscriminators to ensure responses contain either complete success data OR error information, never both, never neither.Response Pattern:
All mutating operations (create, update, build) now enforce strict either/or semantics:
Success response - Operation completed fully:
{ "media_buy_id": "mb_123", "buyer_ref": "campaign_2024_q1", "packages": [...] }Error response - Operation failed completely:
{ "errors": [ { "code": "INVALID_TARGETING", "message": "Tuesday-only targeting not supported", "suggestion": "Remove day-of-week constraint or select all days" } ] }Why This Matters:
Partial success in advertising operations is dangerous and can lead to unintended spend or incorrect targeting. For example:
The
oneOfdiscriminator enforces atomic semantics at the schema level - operations either succeed completely or fail completely. Buyers must explicitly choose to modify their requirements rather than having the system silently omit constraints.Updated Schemas:
All mutating operation schemas now use
oneOfwith explicit success/error branches:Media Buy Operations:
create-media-buy-response.json- Success requiresmedia_buy_id,buyer_ref,packages; Error requireserrorsarrayupdate-media-buy-response.json- Success requiresmedia_buy_id,buyer_ref; Error requireserrorsarraybuild-creative-response.json- Success requirescreative_manifest; Error requireserrorsarrayprovide-performance-feedback-response.json- Success requiressuccess: true; Error requireserrorsarraysync-creatives-response.json- Success requirescreativesarray (with per-item results); Error requireserrorsarray (operation-level failures only)Signals Operations:
activate-signal-response.json- Success requiresdecisioning_platform_segment_id; Error requireserrorsarrayWebhook Validation:
webhook-payload.json- Uses conditional validation (if/thenwithallOf) to validate result field against the appropriate task response schema based on task_type. Ensures webhook results are properly validated against their respective task schemas.Schema Structure:
{ "oneOf": [ { "description": "Success response", "required": ["media_buy_id", "buyer_ref", "packages"], "not": { "required": ["errors"] } }, { "description": "Error response", "required": ["errors"], "not": { "required": ["media_buy_id", "buyer_ref", "packages"] } } ] }The
notconstraints ensure responses cannot contain both success and error fields simultaneously.Benefits:
Batch Operations Pattern
sync_creativesuses a two-level error model that distinguishes:This provides best-effort batch semantics (process what you can, report what failed) while maintaining atomic operation boundaries (either you can process the batch OR you can't).
Migration:
This is a backward-compatible change. Existing valid responses (success with all required fields) continue to validate successfully. The change prevents invalid responses (missing required success fields or mixing success/error fields) that were technically possible but semantically incorrect.
Alignment with Protocol Standards:
This pattern aligns with both MCP and A2A error handling:
isError: true, not bothcompletedORfailed, not both0b76037: Add batch preview and direct HTML embedding support to
preview_creativetask for dramatically faster preview workflows.Enhancements:
Batch Mode - Preview 1-50 creatives in one API call (5-10x faster)
requestsarray instead of single creativeresultsarray with success/error per creativeDirect HTML Embedding - Skip iframes entirely with
output_format: "html"output_format: "html"parameterpreview_htmlfield with raw HTMLoutput_formatsupportBenefits:
Backward Compatibility:
output_format: "url"maintains iframe behavioroneOffor seamless mode detectionUse Cases:
Schema Changes:
/schemas/v1/creative/preview-creative-request.json:oneOfoutput_formatparameter ("url" | "html")/schemas/v1/creative/preview-creative-response.json:oneOfpreview_htmlfield in renders (alternative topreview_url)Documentation Improvements:
32ca877: Consolidate agent registry into main repository and unify server architecture.
Breaking Changes:
/registrydirectoryNew Features:
Documentation:
2a126fe: - Enhanced
get_media_buy_deliveryresponse to include package-level pricing information:pricing_model,rate, andcurrencyfields added toby_packagesection.Impact:
4bf2874: Application-Level Context in Task Payloads
contextobject provided by the initiatorresultpayloads) echo the samecontext649aa2d: Add activation key support for signal protocol with permission-based access. Enables signal agents and buyers to receive activation keys (segment IDs or key-value pairs) based on authenticated permissions.
Breaking Changes:
activate_signalresponse: Changed from singleactivation_keyfield todeploymentsarrayget_signalsandactivate_signalnow consistently usedestinations(plural)New Features:
activation-key.jsonschema supporting segment IDs and key-value pairsNew Schemas:
activation-key.json- Universal activation key supporting segment_id and key_value typesModified Schemas:
get-signals-request.json- destinations array with platform OR agent_urlget-signals-response.json- deployments include activation_key when authorizedactivate-signal-request.json- destinations array (plural)activate-signal-response.json- deployments array with per-destination keysSecurity:
requesterflag (can't be spoofed)17f3a16: Add discriminator fields to multiple schemas for improved TypeScript type safety and reduced union signature complexity.
Breaking Changes: The following schemas now require discriminator fields:
Signal Schemas:
destination.json: Added discriminator withtype: "platform"ortype: "agent"deployment.json: Added discriminator withtype: "platform"ortype: "agent"Creative Asset Schemas:
sub-asset.json: Added discriminator withasset_kind: "media"orasset_kind: "text"vast-asset.json: Added discriminator withdelivery_type: "url"ordelivery_type: "inline"daast-asset.json: Added discriminator withdelivery_type: "url"ordelivery_type: "inline"Preview Response Schemas:
preview-render.json: NEW schema extracting render object with properoneOfdiscriminated unionpreview-creative-response.json: Refactored to use$reftopreview-render.jsoninstead of inlineallOf/if/thenpatternsBenefits:
allOf/if/thenpatternsMigration Guide:
Signal Destinations and Deployments
Before:
{ "destinations": [ { "platform": "the-trade-desk", "account": "agency-123" } ] }After:
{ "destinations": [ { "type": "platform", "platform": "the-trade-desk", "account": "agency-123" } ] }For agent URLs:
{ "destinations": [ { "type": "agent", "agent_url": "https://wonderstruck.salesagents.com" } ] }Sub-Assets
Before:
{ "asset_type": "headline", "asset_id": "main_headline", "content": "Premium Products" }After:
{ "asset_kind": "text", "asset_type": "headline", "asset_id": "main_headline", "content": "Premium Products" }For media assets:
{ "asset_kind": "media", "asset_type": "product_image", "asset_id": "hero_image", "content_uri": "https://cdn.example.com/image.jpg" }VAST/DAAST Assets
Before:
{ "url": "https://vast.example.com/tag", "vast_version": "4.2" }After:
{ "delivery_type": "url", "url": "https://vast.example.com/tag", "vast_version": "4.2" }For inline content:
{ "delivery_type": "inline", "content": "<VAST version=\"4.2\">...</VAST>", "vast_version": "4.2" }Preview Render Output Format
Note: The
output_formatdiscriminator already existed in the schema. This change improves TypeScript type generation by replacingallOf/if/thenconditional logic with properoneOfdiscriminated unions. No API changes required - responses remain identical.Schema pattern (existing behavior, better typing):
{ "renders": [ { "render_id": "primary", "output_format": "url", "preview_url": "https://...", "role": "primary" } ] }The
output_formatfield acts as a discriminator:"url"→ onlypreview_urlfield present"html"→ onlypreview_htmlfield present"both"→ bothpreview_urlandpreview_htmlfields presentb7745a4: - Standardize webhook payload: protocol envelope at top-level; task-specific data moved under result.
058ee19: Add visual card support for products and formats. Publishers and creative agents can now include optional card definitions that reference card formats and provide visual assets for display in user interfaces.
New schema fields:
product_cardandproduct_card_detailedfields in Product schema (both optional)format_cardandformat_card_detailedfields in Format schema (both optional)Two-tier card system:
Rendering flexibility:
preview_creativetaskStandard card format definitions:
product_card_standard,product_card_detailed,format_card_standard,format_card_detailedDeprecation:
preview_imagefield in Format schema is now deprecated (but remains functional)format_cardfor better flexibility and structureBenefits:
Patch Changes
16f632a: Add explicit type declarations to discriminator fields in JSON schemas.
All discriminator fields using
constnow include explicit"type"declarations (e.g.,"type": "string", "const": "value"). This enables TypeScript generators to produce proper literal types instead ofAny, improving type safety and IDE autocomplete.Fixed schemas:
Documentation:
b09ddd6: Update homepage documentation links to external docs site. All documentation links on the homepage, navigation, and footer now point to https://docs.adcontextprotocol.org instead of local paths, directing users to the hosted documentation site.
8904e6c: Fix broken documentation links for Mintlify deployment.
Converted all relative internal links to absolute Mintlify-compatible paths with
/docs/prefix. This fixes 389 broken links across 50 documentation files that were causing 404 errors when users clicked them on docs.adcontextprotocol.org.Technical details:
./reference/release-notesto absolute/docs/reference/release-notes/docs/prefix and no file extensionsFixes fix adcp doc broken links 404 #167
ddeef70: Fix Slack working group invite link in community documentation. The previous invite URL was not functional; replaced with working invite link for the agenticads Slack workspace.
259727a: Add discriminator fields to preview_creative request and response schemas.
Changes:
request_typediscriminator to preview-creative-request.json ("single" | "batch")response_typediscriminator to preview-creative-response.json ("single" | "batch")Why:
Explicit discriminator fields enable TypeScript generators to produce proper discriminated unions with excellent type narrowing and IDE autocomplete. Without discriminators, generators produce index signatures or massive union types with poor type safety.
Migration:
Request format:
Response format:
435a624: Add output_format discriminator to preview render schema for improved validation performance.
Replaces oneOf constraint on render objects with an explicit output_format field ("url", "html", or "both") that indicates which preview fields are present. This eliminates the need for validators to try all three combinations when validating preview responses, significantly improving validation speed for responses with multiple renders (companion ads, multi-placement formats).
Schema change:
output_formatfield to render objects in preview-creative-response.jsononeOfvalidation with conditionalallOfbased on discriminator valueBackward compatibility:
10cc797: Refactor signals schemas to use reusable core destination and deployment schemas.
Changes:
/schemas/v1/core/destination.json- reusable schema for signal activation destinations (DSPs, sales agents, etc.)/schemas/v1/core/deployment.json- reusable schema for signal deployment status and activation keysBenefits:
Affected schemas:
get-signals-request.json- destinations array now uses$refto core destination schemaget-signals-response.json- deployments array now uses$refto core deployment schemaactivate-signal-request.json- destinations array now uses$refto core destination schemaactivate-signal-response.json- deployments array now uses$refto core deployment schemaThis is a non-breaking change - the validation behavior remains identical, only the schema structure is improved.
4c76776: Restore axe_include_segment and axe_exclude_segment targeting fields
These fields were accidentally removed from the targeting schema and have been restored to enable AXE segment targeting functionality.
Restored fields:
axe_include_segment- AXE segment ID to include for targetingaxe_exclude_segment- AXE segment ID to exclude from targetingUpdated documentation: