Summary
@adcp/sdk@13.0.0-rc.11 still forces storyboard get_products calls onto the legacy-only creative wire for negotiated AdCP 3.1 runs. This hides the transitional dual format_ids + format_options response that the rc.11 DecisioningPlatform runtime now emits by default.
This is the remaining storyboard-runner reproduction from #2491; the rc.11 server-runtime and explicit legacy-client fixes otherwise supersede the downstream rc.10 workarounds.
Reproduction
In dist/lib/testing/storyboard/task-map.{js,mjs}:
const callParams = legacyMethodName ? withLegacyCreativeWireHint(params) : params;
For a 3.1 client, gradesLegacyCreativeWire() selects getProductsLegacy, so an otherwise ambiguous get_products request receives ext.adcp.creative_wire = "legacy".
Against the AdCP training agent's media_buy_seller/canonical_formats scenario, unpatched rc.11 fails the first product assertion:
Expected "image", got undefined
because the response contains only format_ids and omits the expected canonical format_options declaration.
Expected
Do not inject the legacy-only wire hint for storyboard get_products. Keep explicit legacy routing for the other creative lifecycle tasks:
const callParams = legacyMethodName && taskName !== "get_products"
? withLegacyCreativeWireHint(params)
: params;
With that change, the canonical-formats scenario passes 15/15 steps, and both the current 3.1 matrix and released 3.0.22 compatibility matrix pass across all seven tenants.
Downstream
adcontextprotocol/adcp#6307 carries an exact-version-gated CJS/ESM patch and removal ledger entry for rc.11.
Summary
@adcp/sdk@13.0.0-rc.11still forces storyboardget_productscalls onto the legacy-only creative wire for negotiated AdCP 3.1 runs. This hides the transitional dualformat_ids+format_optionsresponse that the rc.11 DecisioningPlatform runtime now emits by default.This is the remaining storyboard-runner reproduction from #2491; the rc.11 server-runtime and explicit legacy-client fixes otherwise supersede the downstream rc.10 workarounds.
Reproduction
In
dist/lib/testing/storyboard/task-map.{js,mjs}:For a 3.1 client,
gradesLegacyCreativeWire()selectsgetProductsLegacy, so an otherwise ambiguousget_productsrequest receivesext.adcp.creative_wire = "legacy".Against the AdCP training agent's
media_buy_seller/canonical_formatsscenario, unpatched rc.11 fails the first product assertion:because the response contains only
format_idsand omits the expected canonicalformat_optionsdeclaration.Expected
Do not inject the legacy-only wire hint for storyboard
get_products. Keep explicit legacy routing for the other creative lifecycle tasks:With that change, the canonical-formats scenario passes 15/15 steps, and both the current 3.1 matrix and released 3.0.22 compatibility matrix pass across all seven tenants.
Downstream
adcontextprotocol/adcp#6307 carries an exact-version-gated CJS/ESM patch and removal ledger entry for rc.11.