@adcp/sdk 16.3.0 → 16.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/lib/adapters/version/3.1/assignments.d.mts +12 -0
  2. package/dist/lib/adapters/version/3.1/assignments.d.ts +12 -0
  3. package/dist/lib/adapters/version/3.1/assignments.js +67 -0
  4. package/dist/lib/adapters/version/3.1/assignments.mjs +43 -0
  5. package/dist/lib/adapters/version/3.1/bidding.d.mts +3 -0
  6. package/dist/lib/adapters/version/3.1/bidding.d.ts +3 -0
  7. package/dist/lib/adapters/version/3.1/bidding.js +115 -0
  8. package/dist/lib/adapters/version/3.1/bidding.mjs +90 -0
  9. package/dist/lib/adapters/version/3.1/delivery.d.mts +7 -0
  10. package/dist/lib/adapters/version/3.1/delivery.d.ts +7 -0
  11. package/dist/lib/adapters/version/3.1/delivery.js +78 -0
  12. package/dist/lib/adapters/version/3.1/delivery.mjs +54 -0
  13. package/dist/lib/adapters/version/3.1/index.d.mts +3 -0
  14. package/dist/lib/adapters/version/3.1/index.d.ts +3 -0
  15. package/dist/lib/adapters/version/3.1/index.js +36 -0
  16. package/dist/lib/adapters/version/3.1/index.mjs +12 -0
  17. package/dist/lib/adapters/version/index.d.mts +59 -7
  18. package/dist/lib/adapters/version/index.d.ts +59 -7
  19. package/dist/lib/adapters/version/index.js +51 -2
  20. package/dist/lib/adapters/version/index.mjs +49 -1
  21. package/dist/lib/adapters/version/negotiate.d.mts +71 -0
  22. package/dist/lib/adapters/version/negotiate.d.ts +71 -0
  23. package/dist/lib/adapters/version/negotiate.js +101 -0
  24. package/dist/lib/adapters/version/negotiate.mjs +73 -0
  25. package/dist/lib/adapters/version/schema-projection.d.mts +33 -0
  26. package/dist/lib/adapters/version/schema-projection.d.ts +33 -0
  27. package/dist/lib/adapters/version/schema-projection.js +294 -0
  28. package/dist/lib/adapters/version/schema-projection.mjs +269 -0
  29. package/dist/lib/adapters/version/translate.d.mts +122 -0
  30. package/dist/lib/adapters/version/translate.d.ts +122 -0
  31. package/dist/lib/adapters/version/translate.js +169 -0
  32. package/dist/lib/adapters/version/translate.mjs +141 -0
  33. package/dist/lib/adapters/version/types.d.mts +51 -10
  34. package/dist/lib/adapters/version/types.d.ts +51 -10
  35. package/dist/lib/core/AgentClient.d.mts +1 -1
  36. package/dist/lib/core/AgentClient.d.ts +1 -1
  37. package/dist/lib/core/ConversationTypes.d.mts +7 -0
  38. package/dist/lib/core/ConversationTypes.d.ts +7 -0
  39. package/dist/lib/core/SingleAgentClient.d.mts +82 -0
  40. package/dist/lib/core/SingleAgentClient.d.ts +82 -0
  41. package/dist/lib/core/SingleAgentClient.js +323 -15
  42. package/dist/lib/core/SingleAgentClient.mjs +337 -17
  43. package/dist/lib/core/TaskExecutor.d.mts +1 -1
  44. package/dist/lib/core/TaskExecutor.d.ts +1 -1
  45. package/dist/lib/core/TaskExecutor.js +97 -21
  46. package/dist/lib/core/TaskExecutor.mjs +97 -21
  47. package/dist/lib/core/account-reduction.d.mts +36 -0
  48. package/dist/lib/core/account-reduction.d.ts +36 -0
  49. package/dist/lib/core/account-reduction.js +127 -0
  50. package/dist/lib/core/account-reduction.mjs +98 -0
  51. package/dist/lib/core/buyer-account-registry.d.mts +52 -0
  52. package/dist/lib/core/buyer-account-registry.d.ts +52 -0
  53. package/dist/lib/core/buyer-account-registry.js +142 -6
  54. package/dist/lib/core/buyer-account-registry.mjs +142 -6
  55. package/dist/lib/media-buy/action-contracts.js +4 -4
  56. package/dist/lib/media-buy/action-contracts.mjs +4 -4
  57. package/dist/lib/media-buy/action-types.d.mts +3 -2
  58. package/dist/lib/media-buy/action-types.d.ts +3 -2
  59. package/dist/lib/media-buy/update-fields.generated.d.mts +3 -2
  60. package/dist/lib/media-buy/update-fields.generated.d.ts +3 -2
  61. package/dist/lib/registry/types.generated.d.mts +1 -1
  62. package/dist/lib/registry/types.generated.d.ts +1 -1
  63. package/dist/lib/server/create-adcp-server.d.mts +21 -0
  64. package/dist/lib/server/create-adcp-server.d.ts +21 -0
  65. package/dist/lib/server/create-adcp-server.js +97 -15
  66. package/dist/lib/server/create-adcp-server.mjs +83 -1
  67. package/dist/lib/server/index.d.mts +1 -1
  68. package/dist/lib/server/index.d.ts +1 -1
  69. package/dist/lib/storage/interfaces.d.mts +2 -0
  70. package/dist/lib/storage/interfaces.d.ts +2 -0
  71. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  72. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  73. package/dist/lib/version.d.mts +3 -3
  74. package/dist/lib/version.d.ts +3 -3
  75. package/dist/lib/version.js +3 -3
  76. package/dist/lib/version.mjs +3 -3
  77. package/docs/TYPE-SUMMARY.md +2 -2
  78. package/docs/llms.txt +3 -3
  79. package/docs/migration-14.x-rc-worksheet.md +4 -4
  80. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { assertWebBotAuthSigningKey, getWebBotAuthLegacyOriginGate } from "../signing/web-bot-auth.mjs";
2
+ import { downgradeResponse, translationSteps, upgradeRequest } from "../adapters/version/index.mjs";
2
3
  import {
3
4
  isIdentity33SchemaScope,
4
5
  withIdentity33SchemaScope,
@@ -2442,6 +2443,43 @@ function createAdcpServer(config) {
2442
2443
  const selected = selectServedAdcpRelease(params, capConfig, adcpVersion, defaultAdcpVersion);
2443
2444
  return isMcpToolResponse(selected) ? void 0 : selected;
2444
2445
  };
2446
+ const downgradeTaskStatusResult = (toolName, response, servedVersion) => {
2447
+ if (toolName !== "get_task_status" || config.identity33) return response;
2448
+ if (translationSteps(adcpVersion, servedVersion).length === 0) return response;
2449
+ const body = response.structuredContent;
2450
+ if (!body || typeof body.task_type !== "string" || !body.result || typeof body.result !== "object") return response;
2451
+ const downgraded = downgradeResponse(body.task_type, body.result, {
2452
+ fromVersion: adcpVersion,
2453
+ toVersion: servedVersion
2454
+ });
2455
+ if (downgraded.drifts.length > 0) {
2456
+ reportVersionTranslation({
2457
+ tool: body.task_type,
2458
+ direction: "response",
2459
+ fromVersion: adcpVersion,
2460
+ toVersion: servedVersion,
2461
+ drifts: downgraded.drifts
2462
+ });
2463
+ }
2464
+ if (downgraded.data === body.result) return response;
2465
+ const mirrors = contentTextMirrorsStructuredContent(response, body);
2466
+ const next = cloneFormattedResponse(response);
2467
+ const nextBody = { ...next.structuredContent, result: downgraded.data };
2468
+ next.structuredContent = nextBody;
2469
+ syncContentJsonText(next, nextBody, mirrors);
2470
+ return next;
2471
+ };
2472
+ const reportVersionTranslation = (event) => {
2473
+ if (!config.onVersionTranslation) return;
2474
+ try {
2475
+ config.onVersionTranslation(event);
2476
+ } catch (err) {
2477
+ logger.warn("onVersionTranslation callback threw", {
2478
+ tool: event.tool,
2479
+ error: err instanceof Error ? err.message : String(err)
2480
+ });
2481
+ }
2482
+ };
2445
2483
  const releaseDefinesTool = (toolName, release) => {
2446
2484
  if (toolName === "refine_proposals") return true;
2447
2485
  try {
@@ -2458,6 +2496,7 @@ function createAdcpServer(config) {
2458
2496
  sanitizeAdcpErrorEnvelope(response);
2459
2497
  enrichErrorTwoLayer(response, toolName, getToolsWithErrorArm(release.validationVersion));
2460
2498
  if (!isErrorResponse(response)) {
2499
+ response = downgradeTaskStatusResult(toolName, response, release.validationVersion);
2461
2500
  normalizeMediaBuyStatusCollision(response, toolName);
2462
2501
  injectEnvelopeStatusIntoResponse(response, toolName);
2463
2502
  const validationError = protocolTaskResponseValidationError(toolName, response, params);
@@ -2817,6 +2856,7 @@ function createAdcpServer(config) {
2817
2856
  requestRelease = releaseSelection;
2818
2857
  }
2819
2858
  const requestErrorArms = getToolsWithErrorArm(requestRelease.validationVersion);
2859
+ const translatesRelease = !config.identity33 && toolName !== "get_adcp_capabilities" && translationSteps(adcpVersion, requestRelease.validationVersion).length > 0;
2820
2860
  const ctx = withImmutableServedAdcpVersion(
2821
2861
  {
2822
2862
  store: stateStore,
@@ -3538,7 +3578,24 @@ function createAdcpServer(config) {
3538
3578
  (_entry, index) => !notificationFailureRows.has(index)
3539
3579
  )
3540
3580
  };
3541
- const result = notificationFailureRows.size > 0 && handlerParams.accounts.length === 0 ? { accounts: [], ...params.dry_run === true && { dry_run: true } } : await handler(handlerParams, ctx);
3581
+ const upgraded = translatesRelease ? upgradeRequest(toolName, handlerParams, {
3582
+ fromVersion: requestRelease.validationVersion,
3583
+ toVersion: adcpVersion
3584
+ }) : void 0;
3585
+ if (upgraded && upgraded.drifts.length > 0) {
3586
+ logger.debug(`Converted ${toolName} request up to AdCP ${adcpVersion}`, {
3587
+ tool: toolName,
3588
+ drifts: upgraded.drifts
3589
+ });
3590
+ reportVersionTranslation({
3591
+ tool: toolName,
3592
+ direction: "request",
3593
+ fromVersion: requestRelease.validationVersion,
3594
+ toVersion: adcpVersion,
3595
+ drifts: upgraded.drifts
3596
+ });
3597
+ }
3598
+ const result = notificationFailureRows.size > 0 && handlerParams.accounts.length === 0 ? { accounts: [], ...params.dry_run === true && { dry_run: true } } : await handler(upgraded ? upgraded.params : handlerParams, ctx);
3542
3599
  mutationHandlerCompleted = true;
3543
3600
  let formatted;
3544
3601
  if (isFormattedResponse(result)) {
@@ -4006,6 +4063,31 @@ function createAdcpServer(config) {
4006
4063
  injectEnvelopeStatusIntoResponse(formatted, toolName);
4007
4064
  }
4008
4065
  }
4066
+ if (translatesRelease && !isErrorResponse(formatted) && formatted.structuredContent) {
4067
+ const downgraded = downgradeResponse(toolName, formatted.structuredContent, {
4068
+ fromVersion: adcpVersion,
4069
+ toVersion: requestRelease.validationVersion
4070
+ });
4071
+ if (downgraded.data !== formatted.structuredContent) {
4072
+ const mirrors = contentTextMirrorsStructuredContent(formatted, formatted.structuredContent);
4073
+ formatted = cloneFormattedResponse(formatted);
4074
+ formatted.structuredContent = downgraded.data;
4075
+ syncContentJsonText(formatted, downgraded.data, mirrors);
4076
+ }
4077
+ if (downgraded.drifts.length > 0) {
4078
+ logger.info(`Converted ${toolName} response down to AdCP ${requestRelease.validationVersion}`, {
4079
+ tool: toolName,
4080
+ drifts: downgraded.drifts
4081
+ });
4082
+ reportVersionTranslation({
4083
+ tool: toolName,
4084
+ direction: "response",
4085
+ fromVersion: adcpVersion,
4086
+ toVersion: requestRelease.validationVersion,
4087
+ drifts: downgraded.drifts
4088
+ });
4089
+ }
4090
+ }
4009
4091
  if (responseValidationMode !== "off" && !isErrorResponse(formatted)) {
4010
4092
  const payload = formatted.structuredContent;
4011
4093
  const outcome = validateFrameworkPayload(
@@ -61,7 +61,7 @@ export type { AdcpMcpResourceDefinition, McpAppResourceCsp, McpAppResourcePermis
61
61
  export { requireSessionKey, ADCP_PRE_TRANSPORT, ADCP_SIGNED_REQUESTS_STATE, ADCP_INSTRUCTIONS_FN, } from './create-adcp-server.mjs';
62
62
  export type { SessionContext, OnInstructionsError, MaybePromise, BridgeMarker } from './create-adcp-server.mjs';
63
63
  export type { AdcpServer, AdcpServerComplianceApi, AdcpServerTransport, AdcpTestRequest, AdcpTestToolsCallRequest, AdcpTestResponse, AdcpInvokeOptions, } from './adcp-server.mjs';
64
- export type { AdcpServerConfig as LegacyAdcpServerConfig, WebhooksConfig, AdcpToolMap as LegacyAdcpToolMap, AdcpServerToolName, AdcpCapabilitiesConfig, AdcpCapabilitiesOverrides, AdcpToolVersionRange, AdcpCustomToolConfig as LegacyAdcpCustomToolConfig, AdcpCustomToolHandler as LegacyAdcpCustomToolHandler, AdcpCustomToolHandlerExtra as LegacyAdcpCustomToolHandlerExtra, McpAppUiMeta, McpAppMeta, AdcpLogger, SignedRequestsConfig, AdcpPreTransport, AdcpSignedRequestsState, HandlerContext as LegacyHandlerContext, SessionKeyContext, MediaBuyHandlers as LegacyMediaBuyHandlers, ProposalNegotiationHandlers as LegacyProposalNegotiationHandlers, SignalsHandlers as LegacySignalsHandlers, CreativeHandlers as LegacyCreativeHandlers, GovernanceHandlers as LegacyGovernanceHandlers, AccountHandlers as LegacyAccountHandlers, EventTrackingHandlers as LegacyEventTrackingHandlers, SponsoredIntelligenceHandlers as LegacySponsoredIntelligenceHandlers, ResolveAccountContext as LegacyResolveAccountContext, } from './create-adcp-server.mjs';
64
+ export type { AdcpServerConfig as LegacyAdcpServerConfig, WebhooksConfig, AdcpToolMap as LegacyAdcpToolMap, AdcpServerToolName, AdcpCapabilitiesConfig, AdcpCapabilitiesOverrides, AdcpToolVersionRange, AdcpVersionTranslationEvent, AdcpCustomToolConfig as LegacyAdcpCustomToolConfig, AdcpCustomToolHandler as LegacyAdcpCustomToolHandler, AdcpCustomToolHandlerExtra as LegacyAdcpCustomToolHandlerExtra, McpAppUiMeta, McpAppMeta, AdcpLogger, SignedRequestsConfig, AdcpPreTransport, AdcpSignedRequestsState, HandlerContext as LegacyHandlerContext, SessionKeyContext, MediaBuyHandlers as LegacyMediaBuyHandlers, ProposalNegotiationHandlers as LegacyProposalNegotiationHandlers, SignalsHandlers as LegacySignalsHandlers, CreativeHandlers as LegacyCreativeHandlers, GovernanceHandlers as LegacyGovernanceHandlers, AccountHandlers as LegacyAccountHandlers, EventTrackingHandlers as LegacyEventTrackingHandlers, SponsoredIntelligenceHandlers as LegacySponsoredIntelligenceHandlers, ResolveAccountContext as LegacyResolveAccountContext, } from './create-adcp-server.mjs';
65
65
  export { DEFAULT_REPORTING_CAPABILITIES } from './product-defaults.mjs';
66
66
  export { isSandboxRequest, mergeSeededProductsIntoResponse, filterValidSeededProducts, filterValidSeededCreatives, filterValidSeededMediaBuys, filterValidSeededAccounts, filterValidSeededAccountFinancials, filterValidSeededCreativeFormats, mergeSeededCreativesIntoResponse, mergeSeededMediaBuysIntoResponse, mergeSeededAccountsIntoResponse, mergeSeededCreativeFormatsIntoResponse, pickSeededAccountFinancialsForRequest, replaceAccountFinancialsIfSeeded, bridgeFromTestControllerStore, bridgeFromSessionStore, } from './test-controller-bridge.mjs';
67
67
  export type { TestControllerBridge, TestControllerBridgeContext, BridgeFromSessionStoreOptions, SeededCreative, SeededMediaBuy, SeededAccountFinancials, } from './test-controller-bridge.mjs';
@@ -61,7 +61,7 @@ export type { AdcpMcpResourceDefinition, McpAppResourceCsp, McpAppResourcePermis
61
61
  export { requireSessionKey, ADCP_PRE_TRANSPORT, ADCP_SIGNED_REQUESTS_STATE, ADCP_INSTRUCTIONS_FN, } from './create-adcp-server';
62
62
  export type { SessionContext, OnInstructionsError, MaybePromise, BridgeMarker } from './create-adcp-server';
63
63
  export type { AdcpServer, AdcpServerComplianceApi, AdcpServerTransport, AdcpTestRequest, AdcpTestToolsCallRequest, AdcpTestResponse, AdcpInvokeOptions, } from './adcp-server';
64
- export type { AdcpServerConfig as LegacyAdcpServerConfig, WebhooksConfig, AdcpToolMap as LegacyAdcpToolMap, AdcpServerToolName, AdcpCapabilitiesConfig, AdcpCapabilitiesOverrides, AdcpToolVersionRange, AdcpCustomToolConfig as LegacyAdcpCustomToolConfig, AdcpCustomToolHandler as LegacyAdcpCustomToolHandler, AdcpCustomToolHandlerExtra as LegacyAdcpCustomToolHandlerExtra, McpAppUiMeta, McpAppMeta, AdcpLogger, SignedRequestsConfig, AdcpPreTransport, AdcpSignedRequestsState, HandlerContext as LegacyHandlerContext, SessionKeyContext, MediaBuyHandlers as LegacyMediaBuyHandlers, ProposalNegotiationHandlers as LegacyProposalNegotiationHandlers, SignalsHandlers as LegacySignalsHandlers, CreativeHandlers as LegacyCreativeHandlers, GovernanceHandlers as LegacyGovernanceHandlers, AccountHandlers as LegacyAccountHandlers, EventTrackingHandlers as LegacyEventTrackingHandlers, SponsoredIntelligenceHandlers as LegacySponsoredIntelligenceHandlers, ResolveAccountContext as LegacyResolveAccountContext, } from './create-adcp-server';
64
+ export type { AdcpServerConfig as LegacyAdcpServerConfig, WebhooksConfig, AdcpToolMap as LegacyAdcpToolMap, AdcpServerToolName, AdcpCapabilitiesConfig, AdcpCapabilitiesOverrides, AdcpToolVersionRange, AdcpVersionTranslationEvent, AdcpCustomToolConfig as LegacyAdcpCustomToolConfig, AdcpCustomToolHandler as LegacyAdcpCustomToolHandler, AdcpCustomToolHandlerExtra as LegacyAdcpCustomToolHandlerExtra, McpAppUiMeta, McpAppMeta, AdcpLogger, SignedRequestsConfig, AdcpPreTransport, AdcpSignedRequestsState, HandlerContext as LegacyHandlerContext, SessionKeyContext, MediaBuyHandlers as LegacyMediaBuyHandlers, ProposalNegotiationHandlers as LegacyProposalNegotiationHandlers, SignalsHandlers as LegacySignalsHandlers, CreativeHandlers as LegacyCreativeHandlers, GovernanceHandlers as LegacyGovernanceHandlers, AccountHandlers as LegacyAccountHandlers, EventTrackingHandlers as LegacyEventTrackingHandlers, SponsoredIntelligenceHandlers as LegacySponsoredIntelligenceHandlers, ResolveAccountContext as LegacyResolveAccountContext, } from './create-adcp-server';
65
65
  export { DEFAULT_REPORTING_CAPABILITIES } from './product-defaults';
66
66
  export { isSandboxRequest, mergeSeededProductsIntoResponse, filterValidSeededProducts, filterValidSeededCreatives, filterValidSeededMediaBuys, filterValidSeededAccounts, filterValidSeededAccountFinancials, filterValidSeededCreativeFormats, mergeSeededCreativesIntoResponse, mergeSeededMediaBuysIntoResponse, mergeSeededAccountsIntoResponse, mergeSeededCreativeFormatsIntoResponse, pickSeededAccountFinancialsForRequest, replaceAccountFinancialsIfSeeded, bridgeFromTestControllerStore, bridgeFromSessionStore, } from './test-controller-bridge';
67
67
  export type { TestControllerBridge, TestControllerBridgeContext, BridgeFromSessionStoreOptions, SeededCreative, SeededMediaBuy, SeededAccountFinancials, } from './test-controller-bridge';
@@ -135,6 +135,8 @@ export interface DeferredTaskState {
135
135
  serverVersion: 'v2' | 'v3';
136
136
  /** Per-operation AdCP wire release retained across durable resume. */
137
137
  wireAdcpVersion?: string;
138
+ /** Older release negotiated with the seller; resumed responses validate against it. */
139
+ negotiatedAdcpVersion?: string;
138
140
  /** Per-operation version-envelope mode retained across durable resume. */
139
141
  versionEnvelope?: import('../protocols/index.mjs').VersionEnvelopeMode;
140
142
  /** True when the original seller-version decision used the SDK's synthetic fallback. */
@@ -135,6 +135,8 @@ export interface DeferredTaskState {
135
135
  serverVersion: 'v2' | 'v3';
136
136
  /** Per-operation AdCP wire release retained across durable resume. */
137
137
  wireAdcpVersion?: string;
138
+ /** Older release negotiated with the seller; resumed responses validate against it. */
139
+ negotiatedAdcpVersion?: string;
138
140
  /** Per-operation version-envelope mode retained across durable resume. */
139
141
  versionEnvelope?: import('../protocols').VersionEnvelopeMode;
140
142
  /** True when the original seller-version decision used the SDK's synthetic fallback. */
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
197
197
  */
198
198
  export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
199
199
  /** Capability semver emitted in run summaries and used for advisory expiry. */
200
- export declare const RUNNER_CAPABILITY_VERSION = "16.3.0";
200
+ export declare const RUNNER_CAPABILITY_VERSION = "16.4.0";
201
201
  /** True when a failed validation contributes to the owning step's grade. */
202
202
  export declare function validationFailsStep(result: ValidationResult): boolean;
203
203
  /**
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
197
197
  */
198
198
  export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
199
199
  /** Capability semver emitted in run summaries and used for advisory expiry. */
200
- export declare const RUNNER_CAPABILITY_VERSION = "16.3.0";
200
+ export declare const RUNNER_CAPABILITY_VERSION = "16.4.0";
201
201
  /** True when a failed validation contributes to the owning step's grade. */
202
202
  export declare function validationFailsStep(result: ValidationResult): boolean;
203
203
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AdCP SDK library version
3
3
  */
4
- export declare const LIBRARY_VERSION = "16.3.0";
4
+ export declare const LIBRARY_VERSION = "16.4.0";
5
5
  /**
6
6
  * AdCP specification version this library is built for
7
7
  */
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
33
33
  * Full version information
34
34
  */
35
35
  export declare const VERSION_INFO: {
36
- readonly library: "16.3.0";
36
+ readonly library: "16.4.0";
37
37
  readonly adcp: "3.2.5";
38
38
  readonly compatibleVersions: readonly ["v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
39
- readonly generatedAt: "2026-10-22T14:25:22.608Z";
39
+ readonly generatedAt: "2026-10-23T04:33:29.838Z";
40
40
  };
41
41
  /**
42
42
  * Get the AdCP specification version this library is built for
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AdCP SDK library version
3
3
  */
4
- export declare const LIBRARY_VERSION = "16.3.0";
4
+ export declare const LIBRARY_VERSION = "16.4.0";
5
5
  /**
6
6
  * AdCP specification version this library is built for
7
7
  */
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
33
33
  * Full version information
34
34
  */
35
35
  export declare const VERSION_INFO: {
36
- readonly library: "16.3.0";
36
+ readonly library: "16.4.0";
37
37
  readonly adcp: "3.2.5";
38
38
  readonly compatibleVersions: readonly ["v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
39
- readonly generatedAt: "2026-10-22T14:25:22.608Z";
39
+ readonly generatedAt: "2026-10-23T04:33:29.838Z";
40
40
  };
41
41
  /**
42
42
  * Get the AdCP specification version this library is built for
@@ -31,7 +31,7 @@ __export(version_exports, {
31
31
  toReleasePrecisionVersion: () => toReleasePrecisionVersion
32
32
  });
33
33
  module.exports = __toCommonJS(version_exports);
34
- const LIBRARY_VERSION = "16.3.0";
34
+ const LIBRARY_VERSION = "16.4.0";
35
35
  const ADCP_VERSION = "3.2.5";
36
36
  const ADCP_MAJOR_VERSION = 3;
37
37
  const COMPATIBLE_ADCP_VERSIONS = [
@@ -102,10 +102,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
102
102
  "3.2.5"
103
103
  ];
104
104
  const VERSION_INFO = {
105
- library: "16.3.0",
105
+ library: "16.4.0",
106
106
  adcp: "3.2.5",
107
107
  compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
108
- generatedAt: "2026-10-22T14:25:22.608Z"
108
+ generatedAt: "2026-10-23T04:33:29.838Z"
109
109
  };
110
110
  function getAdcpVersion() {
111
111
  return ADCP_VERSION;
@@ -1,4 +1,4 @@
1
- const LIBRARY_VERSION = "16.3.0";
1
+ const LIBRARY_VERSION = "16.4.0";
2
2
  const ADCP_VERSION = "3.2.5";
3
3
  const ADCP_MAJOR_VERSION = 3;
4
4
  const COMPATIBLE_ADCP_VERSIONS = [
@@ -69,10 +69,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
69
69
  "3.2.5"
70
70
  ];
71
71
  const VERSION_INFO = {
72
- library: "16.3.0",
72
+ library: "16.4.0",
73
73
  adcp: "3.2.5",
74
74
  compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
75
- generatedAt: "2026-10-22T14:25:22.608Z"
75
+ generatedAt: "2026-10-23T04:33:29.838Z"
76
76
  };
77
77
  function getAdcpVersion() {
78
78
  return ADCP_VERSION;
@@ -1,7 +1,7 @@
1
1
  # AdCP Type Summary
2
2
 
3
- > Generated at: 2026-10-22
4
- > @adcp/sdk v16.3.0
3
+ > Generated at: 2026-10-23
4
+ > @adcp/sdk v16.4.0
5
5
 
6
6
  Curated reference of the types that matter for using the AdCP client. For full generated types see `src/lib/types/tools.generated.ts` and `src/lib/types/core.generated.ts`.
7
7
 
package/docs/llms.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  # Ad Context Protocol (AdCP)
2
2
 
3
- > Generated at: 2026-10-22
4
- > Library: @adcp/sdk v16.3.0
3
+ > Generated at: 2026-10-23
4
+ > Library: @adcp/sdk v16.4.0
5
5
  > AdCP major version: 3
6
6
  > Canonical URL: https://adcontextprotocol.github.io/adcp-client/llms.txt
7
7
  > Note: the `Library` stamp reflects the package.json version at doc-generation time. The narrative below describes the surface that lands on the next-published minor — including any 6.7 helpers documented here ahead of the release tag.
@@ -13,7 +13,7 @@ AdCP is an open protocol for AI agents to buy, manage, and optimize advertising
13
13
 
14
14
  ## Start here: AdCP 3.2
15
15
 
16
- The SDK requires Node.js `^20.19.0 || >=22.12.0`. Install this reference's release train with `npm install @adcp/sdk@16.3`; use the documentation from the exact published SDK version you install. For reproducible CLI runs, pin that exact SDK version. After installation, `node -p "require('@adcp/sdk').ADCP_VERSION"` reports its protocol pin; `ls node_modules/@adcp/sdk/compliance/cache` lists its packaged compliance versions. The legacy `adcp-3.2` npm tag selects SDK 14 and does not receive the refreshed compliance caches.
16
+ The SDK requires Node.js `^20.19.0 || >=22.12.0`. Install this reference's release train with `npm install @adcp/sdk@16.4`; use the documentation from the exact published SDK version you install. For reproducible CLI runs, pin that exact SDK version. After installation, `node -p "require('@adcp/sdk').ADCP_VERSION"` reports its protocol pin; `ls node_modules/@adcp/sdk/compliance/cache` lists its packaged compliance versions. The legacy `adcp-3.2` npm tag selects SDK 14 and does not receive the refreshed compliance caches.
17
17
 
18
18
  The SDK is compact-lifecycle first: `list_products → buy_products → control_media_buy`, with `request_proposals → refine_proposals → accept_proposal` when terms need negotiation.
19
19
 
@@ -16,8 +16,8 @@ pin using `ADCP_VERSION` inside that tarball.
16
16
 
17
17
  | Fact | Value |
18
18
  | --- | --- |
19
- | Checkout `package.json` version | `@adcp/sdk@16.3.0` |
20
- | npm integrity | registry-derived after publication; run `npm view @adcp/sdk@16.3.0 dist.integrity` |
19
+ | Checkout `package.json` version | `@adcp/sdk@16.4.0` |
20
+ | npm integrity | registry-derived after publication; run `npm view @adcp/sdk@16.4.0 dist.integrity` |
21
21
  | Node.js runtime | `^20.19.0 || >=22.12.0` |
22
22
  | Default AdCP wire release | `3.2.5` |
23
23
  | Maintained wire releases | `v3`, `3.0.0`, `3.0`, `3.0.1`, `3.0.2`, `3.0.3`, `3.0.4`, `3.0.5`, `3.0.6`, `3.0.7`, `3.0.8`, `3.0.9`, `3.0.10`, `3.0.11`, `3.0.12`, `3.0.13`, `3.0.14`, `3.0.15`, `3.0.16`, `3.0.17`, `3.0.18`, `3.0.19`, `3.0.20`, `3.0.21`, `3.0.22`, `3.0.23`, `3.0.24`, `3.0.25`, `3.1.0`, `3.1`, `3.1.1`, `3.1.2`, `3.1.3`, `3.1.4`, `3.1.5`, `3.1.6`, `3.1.7`, `3.1.8`, `3.1.9`, `3.1.10`, `3.1.11`, `3.1.12`, `3.1.13`, `3.1.14`, `3.1.15`, `3.1.16`, `3.1.17`, `3.1.18`, `3.1.19`, `3.1.20`, `3.1.21`, `3.1.22`, `3.1.23`, `3.1.24`, `3.1.25`, `3.1.26`, `3.1.27`, `3.1.28`, `3.1.29`, `3.2.1`, `3.2`, `3.2.2`, `3.2.3`, `3.2.4`, `3.2.5` |
@@ -26,8 +26,8 @@ pin using `ADCP_VERSION` inside that tarball.
26
26
  For a checkout at the published release commit, install the exact package version:
27
27
 
28
28
  ```bash
29
- npm install --save-exact '@adcp/sdk@16.3.0'
30
- npm view '@adcp/sdk@16.3.0' dist.integrity
29
+ npm install --save-exact '@adcp/sdk@16.4.0'
30
+ npm view '@adcp/sdk@16.4.0' dist.integrity
31
31
  ```
32
32
 
33
33
  ### Required and optional peers
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adcp/sdk",
3
- "version": "16.3.0",
3
+ "version": "16.4.0",
4
4
  "description": "AdCP SDK — client, server, and compliance harnesses for the AdContext Protocol (MCP + A2A)",
5
5
  "workspaces": [
6
6
  ".",