@adcp/sdk 14.0.0-beta.29 → 14.0.0-beta.30

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.
@@ -4,5 +4,5 @@
4
4
  "source_sha": "4e553ad955f83b49c7d221ab5c3ff78237ad02e3",
5
5
  "source_tarball_sha256": "580656d6466ef9f0d1119985e6726c2efea718dc671e2ad30957fcb2fd54af0f",
6
6
  "upstream_adcp_version": "2.5.3",
7
- "synced_at": "2026-09-03T01:17:10.120Z"
7
+ "synced_at": "2026-09-03T04:08:27.356Z"
8
8
  }
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * @public
18
18
  */
19
- import type { Account as WireAccount, AccountAuthorization, AccountScope, BillingParty, BrandReference, AccountReference, BusinessEntity, ExtensionObject, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, PaymentTerms, ListAccountsResponse, ReportUsageRequest, ReportUsageResponse, SyncAccountsResponse, SyncAccountsSuccess, SyncGovernanceRequest, SyncGovernanceResponse, SyncGovernanceSuccess, GetAccountFinancialsRequest, GetAccountFinancialsResponse, GetAccountFinancialsSuccess } from '../../types/tools.generated.mjs';
19
+ import type { Account as WireAccount, AccountAuthorization, AccountScope, BillingParty, BrandReference, AccountReference, BusinessEntity, ExtensionObject, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, PaymentTerms, ReportingDeliveryConfigurationState, ListAccountsResponse, ReportUsageRequest, ReportUsageResponse, SyncAccountsResponse, SyncAccountsSuccess, SyncGovernanceRequest, SyncGovernanceResponse, SyncGovernanceSuccess, GetAccountFinancialsRequest, GetAccountFinancialsResponse, GetAccountFinancialsSuccess } from '../../types/tools.generated.mjs';
20
20
  import type { ServerPayload } from '../../types/server-payload.mjs';
21
21
  import type { NotificationConfig } from '../../types/v3-1-beta/index.mjs';
22
22
  import type { CursorPage } from './pagination.mjs';
@@ -143,6 +143,13 @@ export interface Account<TCtxMeta = Record<string, unknown>> {
143
143
  * schema description for security constraints.
144
144
  */
145
145
  reporting_bucket?: WireAccount['reporting_bucket'];
146
+ /**
147
+ * Resolved, caller-owned durable reporting delivery configurations. These
148
+ * are the secret-free state records returned after the seller validates a
149
+ * `sync_accounts` reporting delivery declaration; they are not a reporting
150
+ * ledger and do not grant access to a destination.
151
+ */
152
+ reporting_delivery_configs?: ReportingDeliveryConfigurationState[];
146
153
  /**
147
154
  * Account-level webhook subscriptions registered through `sync_accounts`.
148
155
  * Beta 3 adds wholesale product/signal feed webhooks here. The framework
@@ -731,6 +738,12 @@ export interface SyncAccountsResultRow {
731
738
  credit_limit?: WireAccount['credit_limit'];
732
739
  /** Applied account-level webhook subscriptions; credentials are stripped on emit. */
733
740
  notification_configs?: NotificationConfig[];
741
+ /**
742
+ * Resolved, secret-free durable reporting delivery configuration states.
743
+ * The seller returns these after validating the declaration, including for
744
+ * dry-run previews. This is state projection only, not ledger behavior.
745
+ */
746
+ reporting_delivery_configs?: ReportingDeliveryConfigurationState[];
734
747
  /**
735
748
  * Caller-specific authorization metadata for this synced account, including
736
749
  * downstream grants such as advertiser-account access plus publisher
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * @public
18
18
  */
19
- import type { Account as WireAccount, AccountAuthorization, AccountScope, BillingParty, BrandReference, AccountReference, BusinessEntity, ExtensionObject, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, PaymentTerms, ListAccountsResponse, ReportUsageRequest, ReportUsageResponse, SyncAccountsResponse, SyncAccountsSuccess, SyncGovernanceRequest, SyncGovernanceResponse, SyncGovernanceSuccess, GetAccountFinancialsRequest, GetAccountFinancialsResponse, GetAccountFinancialsSuccess } from '../../types/tools.generated';
19
+ import type { Account as WireAccount, AccountAuthorization, AccountScope, BillingParty, BrandReference, AccountReference, BusinessEntity, ExtensionObject, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, PaymentTerms, ReportingDeliveryConfigurationState, ListAccountsResponse, ReportUsageRequest, ReportUsageResponse, SyncAccountsResponse, SyncAccountsSuccess, SyncGovernanceRequest, SyncGovernanceResponse, SyncGovernanceSuccess, GetAccountFinancialsRequest, GetAccountFinancialsResponse, GetAccountFinancialsSuccess } from '../../types/tools.generated';
20
20
  import type { ServerPayload } from '../../types/server-payload';
21
21
  import type { NotificationConfig } from '../../types/v3-1-beta';
22
22
  import type { CursorPage } from './pagination';
@@ -143,6 +143,13 @@ export interface Account<TCtxMeta = Record<string, unknown>> {
143
143
  * schema description for security constraints.
144
144
  */
145
145
  reporting_bucket?: WireAccount['reporting_bucket'];
146
+ /**
147
+ * Resolved, caller-owned durable reporting delivery configurations. These
148
+ * are the secret-free state records returned after the seller validates a
149
+ * `sync_accounts` reporting delivery declaration; they are not a reporting
150
+ * ledger and do not grant access to a destination.
151
+ */
152
+ reporting_delivery_configs?: ReportingDeliveryConfigurationState[];
146
153
  /**
147
154
  * Account-level webhook subscriptions registered through `sync_accounts`.
148
155
  * Beta 3 adds wholesale product/signal feed webhooks here. The framework
@@ -731,6 +738,12 @@ export interface SyncAccountsResultRow {
731
738
  credit_limit?: WireAccount['credit_limit'];
732
739
  /** Applied account-level webhook subscriptions; credentials are stripped on emit. */
733
740
  notification_configs?: NotificationConfig[];
741
+ /**
742
+ * Resolved, secret-free durable reporting delivery configuration states.
743
+ * The seller returns these after validating the declaration, including for
744
+ * dry-run previews. This is state projection only, not ledger behavior.
745
+ */
746
+ reporting_delivery_configs?: ReportingDeliveryConfigurationState[];
734
747
  /**
735
748
  * Caller-specific authorization metadata for this synced account, including
736
749
  * downstream grants such as advertiser-account access plus publisher
@@ -26,6 +26,7 @@ __export(account_exports, {
26
26
  toWireSyncGovernanceRow: () => toWireSyncGovernanceRow
27
27
  });
28
28
  module.exports = __toCommonJS(account_exports);
29
+ var import_reporting_delivery_config = require('../reporting-delivery-config.js');
29
30
  const ACCOUNT_AUTHORIZATION_WIRE_KEYS = [
30
31
  "allowed_tasks",
31
32
  "field_scopes",
@@ -68,6 +69,9 @@ function toWireAccount(account) {
68
69
  wire.governance_agents = [projectGovernanceAgent(account.governance_agents[0])];
69
70
  }
70
71
  if (account.reporting_bucket !== void 0) wire.reporting_bucket = account.reporting_bucket;
72
+ if (account.reporting_delivery_configs !== void 0) {
73
+ wire.reporting_delivery_configs = (0, import_reporting_delivery_config.projectReportingDeliveryConfigStates)(account.reporting_delivery_configs);
74
+ }
71
75
  if (account.notification_configs !== void 0) {
72
76
  wire.notification_configs = account.notification_configs.map(projectNotificationConfig);
73
77
  }
@@ -113,6 +117,9 @@ function toWireSyncAccountRow(row) {
113
117
  if (row.notification_configs !== void 0) {
114
118
  wire.notification_configs = row.notification_configs.map(projectNotificationConfig);
115
119
  }
120
+ if (row.reporting_delivery_configs !== void 0) {
121
+ wire.reporting_delivery_configs = (0, import_reporting_delivery_config.projectReportingDeliveryConfigStates)(row.reporting_delivery_configs);
122
+ }
116
123
  if (row.authorization !== void 0) {
117
124
  wire.authorization = projectAccountAuthorization(
118
125
  row.authorization
@@ -1,3 +1,4 @@
1
+ import { projectReportingDeliveryConfigStates } from "../reporting-delivery-config.mjs";
1
2
  const ACCOUNT_AUTHORIZATION_WIRE_KEYS = [
2
3
  "allowed_tasks",
3
4
  "field_scopes",
@@ -40,6 +41,9 @@ function toWireAccount(account) {
40
41
  wire.governance_agents = [projectGovernanceAgent(account.governance_agents[0])];
41
42
  }
42
43
  if (account.reporting_bucket !== void 0) wire.reporting_bucket = account.reporting_bucket;
44
+ if (account.reporting_delivery_configs !== void 0) {
45
+ wire.reporting_delivery_configs = projectReportingDeliveryConfigStates(account.reporting_delivery_configs);
46
+ }
43
47
  if (account.notification_configs !== void 0) {
44
48
  wire.notification_configs = account.notification_configs.map(projectNotificationConfig);
45
49
  }
@@ -85,6 +89,9 @@ function toWireSyncAccountRow(row) {
85
89
  if (row.notification_configs !== void 0) {
86
90
  wire.notification_configs = row.notification_configs.map(projectNotificationConfig);
87
91
  }
92
+ if (row.reporting_delivery_configs !== void 0) {
93
+ wire.reporting_delivery_configs = projectReportingDeliveryConfigStates(row.reporting_delivery_configs);
94
+ }
88
95
  if (row.authorization !== void 0) {
89
96
  wire.authorization = projectAccountAuthorization(
90
97
  row.authorization
@@ -4775,7 +4775,10 @@ function buildAccountHandlers(platform, ctxFor) {
4775
4775
  );
4776
4776
  }
4777
4777
  if (policy.failedRows.size === 0) {
4778
- return { accounts: rows.map(import_account.toWireSyncAccountRow) };
4778
+ return {
4779
+ ...params.dry_run === true && { dry_run: true },
4780
+ accounts: rows.map(import_account.toWireSyncAccountRow)
4781
+ };
4779
4782
  }
4780
4783
  const combined = [];
4781
4784
  let acceptedIndex = 0;
@@ -4789,7 +4792,10 @@ function buildAccountHandlers(platform, ctxFor) {
4789
4792
  acceptedIndex += 1;
4790
4793
  }
4791
4794
  }
4792
- return { accounts: combined.map(import_account.toWireSyncAccountRow) };
4795
+ return {
4796
+ ...params.dry_run === true && { dry_run: true },
4797
+ accounts: combined.map(import_account.toWireSyncAccountRow)
4798
+ };
4793
4799
  }
4794
4800
  );
4795
4801
  };
@@ -4798,7 +4798,10 @@ function buildAccountHandlers(platform, ctxFor) {
4798
4798
  );
4799
4799
  }
4800
4800
  if (policy.failedRows.size === 0) {
4801
- return { accounts: rows.map(toWireSyncAccountRow) };
4801
+ return {
4802
+ ...params.dry_run === true && { dry_run: true },
4803
+ accounts: rows.map(toWireSyncAccountRow)
4804
+ };
4802
4805
  }
4803
4806
  const combined = [];
4804
4807
  let acceptedIndex = 0;
@@ -4812,7 +4815,10 @@ function buildAccountHandlers(platform, ctxFor) {
4812
4815
  acceptedIndex += 1;
4813
4816
  }
4814
4817
  }
4815
- return { accounts: combined.map(toWireSyncAccountRow) };
4818
+ return {
4819
+ ...params.dry_run === true && { dry_run: true },
4820
+ accounts: combined.map(toWireSyncAccountRow)
4821
+ };
4816
4822
  }
4817
4823
  );
4818
4824
  };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Response-boundary projection for resolved reporting delivery configuration
3
+ * states. The protocol deliberately makes these records secret-free: they
4
+ * describe a seller's resolved delivery state, not the credentials used to
5
+ * reach the delivery destination.
6
+ */
7
+ import type { ReportingDeliveryConfigurationState } from '../types/tools.generated.mjs';
8
+ /**
9
+ * Validate resolved reporting delivery states before placing them in a wire
10
+ * response. This remains necessary when an adopter disables whole-response
11
+ * validation in production. The raw protocol schema rejects unknown fields,
12
+ * including credentials accidentally retained by a handler or persistence
13
+ * model, so failing closed prevents those values from reaching a buyer or an
14
+ * idempotency/replay cache.
15
+ */
16
+ export declare function projectReportingDeliveryConfigStates(states: readonly ReportingDeliveryConfigurationState[]): ReportingDeliveryConfigurationState[];
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Response-boundary projection for resolved reporting delivery configuration
3
+ * states. The protocol deliberately makes these records secret-free: they
4
+ * describe a seller's resolved delivery state, not the credentials used to
5
+ * reach the delivery destination.
6
+ */
7
+ import type { ReportingDeliveryConfigurationState } from '../types/tools.generated';
8
+ /**
9
+ * Validate resolved reporting delivery states before placing them in a wire
10
+ * response. This remains necessary when an adopter disables whole-response
11
+ * validation in production. The raw protocol schema rejects unknown fields,
12
+ * including credentials accidentally retained by a handler or persistence
13
+ * model, so failing closed prevents those values from reaching a buyer or an
14
+ * idempotency/replay cache.
15
+ */
16
+ export declare function projectReportingDeliveryConfigStates(states: readonly ReportingDeliveryConfigurationState[]): ReportingDeliveryConfigurationState[];
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var reporting_delivery_config_exports = {};
20
+ __export(reporting_delivery_config_exports, {
21
+ projectReportingDeliveryConfigStates: () => projectReportingDeliveryConfigStates
22
+ });
23
+ module.exports = __toCommonJS(reporting_delivery_config_exports);
24
+ var import_schema_loader = require('../validation/schema-loader.js');
25
+ const MAX_REPORTING_DELIVERY_CONFIGS = 16;
26
+ const CREDENTIAL_LIKE_URL_COMPONENT = /\b(?:access[_-]?token|api[_-]?key|assertion|authorization|bearer|code|credential|password|passwd|secret|session|signature|token|x-amz-credential|x-amz-security-token|x-amz-signature)\b/i;
27
+ function isCredentialLikeUrlComponent(value) {
28
+ try {
29
+ return CREDENTIAL_LIKE_URL_COMPONENT.test(decodeURIComponent(value));
30
+ } catch {
31
+ return CREDENTIAL_LIKE_URL_COMPONENT.test(value);
32
+ }
33
+ }
34
+ function assertSafeSetupUrl(value) {
35
+ if (typeof value !== "string") return;
36
+ let url;
37
+ try {
38
+ url = new URL(value);
39
+ } catch {
40
+ return;
41
+ }
42
+ if (url.protocol !== "https:" || url.username || url.password) {
43
+ throw new Error("reporting_delivery_configs setup.url must not contain credentials");
44
+ }
45
+ for (const [key, queryValue] of url.searchParams) {
46
+ if (isCredentialLikeUrlComponent(key) || isCredentialLikeUrlComponent(queryValue)) {
47
+ throw new Error("reporting_delivery_configs setup.url must not contain credential-like query parameters");
48
+ }
49
+ }
50
+ if (url.hash && isCredentialLikeUrlComponent(url.hash.slice(1))) {
51
+ throw new Error("reporting_delivery_configs setup.url must not contain credential-like fragments");
52
+ }
53
+ }
54
+ function projectReportingDeliveryConfigStates(states) {
55
+ if (!Array.isArray(states) || states.length > MAX_REPORTING_DELIVERY_CONFIGS) {
56
+ throw new Error(`reporting_delivery_configs must contain at most ${MAX_REPORTING_DELIVERY_CONFIGS} state records`);
57
+ }
58
+ const validateState = (0, import_schema_loader.getSchemaValidatorByRef)("core/reporting-delivery-config-state.json");
59
+ if (!validateState) {
60
+ throw new Error("Bundled schema core/reporting-delivery-config-state.json is unavailable");
61
+ }
62
+ for (const state of states) {
63
+ if (!validateState(state)) {
64
+ throw new Error("reporting_delivery_configs contains a state that is not a valid secret-free protocol record");
65
+ }
66
+ assertSafeSetupUrl(state.setup?.url);
67
+ }
68
+ return [...states];
69
+ }
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
72
+ projectReportingDeliveryConfigStates
73
+ });
@@ -0,0 +1,49 @@
1
+ import { getSchemaValidatorByRef } from "../validation/schema-loader.mjs";
2
+ const MAX_REPORTING_DELIVERY_CONFIGS = 16;
3
+ const CREDENTIAL_LIKE_URL_COMPONENT = /\b(?:access[_-]?token|api[_-]?key|assertion|authorization|bearer|code|credential|password|passwd|secret|session|signature|token|x-amz-credential|x-amz-security-token|x-amz-signature)\b/i;
4
+ function isCredentialLikeUrlComponent(value) {
5
+ try {
6
+ return CREDENTIAL_LIKE_URL_COMPONENT.test(decodeURIComponent(value));
7
+ } catch {
8
+ return CREDENTIAL_LIKE_URL_COMPONENT.test(value);
9
+ }
10
+ }
11
+ function assertSafeSetupUrl(value) {
12
+ if (typeof value !== "string") return;
13
+ let url;
14
+ try {
15
+ url = new URL(value);
16
+ } catch {
17
+ return;
18
+ }
19
+ if (url.protocol !== "https:" || url.username || url.password) {
20
+ throw new Error("reporting_delivery_configs setup.url must not contain credentials");
21
+ }
22
+ for (const [key, queryValue] of url.searchParams) {
23
+ if (isCredentialLikeUrlComponent(key) || isCredentialLikeUrlComponent(queryValue)) {
24
+ throw new Error("reporting_delivery_configs setup.url must not contain credential-like query parameters");
25
+ }
26
+ }
27
+ if (url.hash && isCredentialLikeUrlComponent(url.hash.slice(1))) {
28
+ throw new Error("reporting_delivery_configs setup.url must not contain credential-like fragments");
29
+ }
30
+ }
31
+ function projectReportingDeliveryConfigStates(states) {
32
+ if (!Array.isArray(states) || states.length > MAX_REPORTING_DELIVERY_CONFIGS) {
33
+ throw new Error(`reporting_delivery_configs must contain at most ${MAX_REPORTING_DELIVERY_CONFIGS} state records`);
34
+ }
35
+ const validateState = getSchemaValidatorByRef("core/reporting-delivery-config-state.json");
36
+ if (!validateState) {
37
+ throw new Error("Bundled schema core/reporting-delivery-config-state.json is unavailable");
38
+ }
39
+ for (const state of states) {
40
+ if (!validateState(state)) {
41
+ throw new Error("reporting_delivery_configs contains a state that is not a valid secret-free protocol record");
42
+ }
43
+ assertSafeSetupUrl(state.setup?.url);
44
+ }
45
+ return [...states];
46
+ }
47
+ export {
48
+ projectReportingDeliveryConfigStates
49
+ };
@@ -59,6 +59,7 @@ __export(responses_exports, {
59
59
  });
60
60
  module.exports = __toCommonJS(responses_exports);
61
61
  var import_media_buy_helpers = require('./media-buy-helpers.js');
62
+ var import_reporting_delivery_config = require('./reporting-delivery-config.js');
62
63
  const explicitResponseSummaries = /* @__PURE__ */ new WeakMap();
63
64
  function _getExplicitResponseSummary(response) {
64
65
  return explicitResponseSummaries.get(response);
@@ -123,7 +124,15 @@ function stripBusinessEntityBank(row, key) {
123
124
  return stripped;
124
125
  }
125
126
  function stripAccountWriteOnlyFields(account) {
126
- return stripBusinessEntityBank(stripNotificationConfigSecrets(account), "billing_entity");
127
+ const stripped = stripBusinessEntityBank(stripNotificationConfigSecrets(account), "billing_entity");
128
+ const reportingDeliveryConfigs = stripped.reporting_delivery_configs;
129
+ if (reportingDeliveryConfigs === void 0) return stripped;
130
+ return {
131
+ ...stripped,
132
+ reporting_delivery_configs: (0, import_reporting_delivery_config.projectReportingDeliveryConfigStates)(
133
+ reportingDeliveryConfigs
134
+ )
135
+ };
127
136
  }
128
137
  function stripAccountsWriteOnlyFields(data) {
129
138
  if (!Array.isArray(data.accounts)) return data;
@@ -1,4 +1,5 @@
1
1
  import { validActionsForStatus } from "./media-buy-helpers.mjs";
2
+ import { projectReportingDeliveryConfigStates } from "./reporting-delivery-config.mjs";
2
3
  const explicitResponseSummaries = /* @__PURE__ */ new WeakMap();
3
4
  function _getExplicitResponseSummary(response) {
4
5
  return explicitResponseSummaries.get(response);
@@ -63,7 +64,15 @@ function stripBusinessEntityBank(row, key) {
63
64
  return stripped;
64
65
  }
65
66
  function stripAccountWriteOnlyFields(account) {
66
- return stripBusinessEntityBank(stripNotificationConfigSecrets(account), "billing_entity");
67
+ const stripped = stripBusinessEntityBank(stripNotificationConfigSecrets(account), "billing_entity");
68
+ const reportingDeliveryConfigs = stripped.reporting_delivery_configs;
69
+ if (reportingDeliveryConfigs === void 0) return stripped;
70
+ return {
71
+ ...stripped,
72
+ reporting_delivery_configs: projectReportingDeliveryConfigStates(
73
+ reportingDeliveryConfigs
74
+ )
75
+ };
67
76
  }
68
77
  function stripAccountsWriteOnlyFields(data) {
69
78
  if (!Array.isArray(data.accounts)) return data;
@@ -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 = "14.0.0-beta.29";
200
+ export declare const RUNNER_CAPABILITY_VERSION = "14.0.0-beta.30";
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 = "14.0.0-beta.29";
200
+ export declare const RUNNER_CAPABILITY_VERSION = "14.0.0-beta.30";
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 = "14.0.0-beta.29";
4
+ export declare const LIBRARY_VERSION = "14.0.0-beta.30";
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: "14.0.0-beta.29";
36
+ readonly library: "14.0.0-beta.30";
37
37
  readonly adcp: "3.2.0-beta.11";
38
38
  readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0-beta.1", "3.0-beta.1", "3.0-beta", "3.0.0-beta.3", "3.0-beta.3", "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.2.0-beta.11", "3.2-beta.11"];
39
- readonly generatedAt: "2026-09-02T21:45:21.388Z";
39
+ readonly generatedAt: "2026-09-03T03:53:17.027Z";
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 = "14.0.0-beta.29";
4
+ export declare const LIBRARY_VERSION = "14.0.0-beta.30";
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: "14.0.0-beta.29";
36
+ readonly library: "14.0.0-beta.30";
37
37
  readonly adcp: "3.2.0-beta.11";
38
38
  readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0-beta.1", "3.0-beta.1", "3.0-beta", "3.0.0-beta.3", "3.0-beta.3", "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.2.0-beta.11", "3.2-beta.11"];
39
- readonly generatedAt: "2026-09-02T21:45:21.388Z";
39
+ readonly generatedAt: "2026-09-03T03:53:17.027Z";
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 = "14.0.0-beta.29";
34
+ const LIBRARY_VERSION = "14.0.0-beta.30";
35
35
  const ADCP_VERSION = "3.2.0-beta.11";
36
36
  const ADCP_MAJOR_VERSION = 3;
37
37
  const COMPATIBLE_ADCP_VERSIONS = [
@@ -94,10 +94,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
94
94
  "3.2-beta.11"
95
95
  ];
96
96
  const VERSION_INFO = {
97
- library: "14.0.0-beta.29",
97
+ library: "14.0.0-beta.30",
98
98
  adcp: "3.2.0-beta.11",
99
99
  compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
100
- generatedAt: "2026-09-02T21:45:21.388Z"
100
+ generatedAt: "2026-09-03T03:53:17.027Z"
101
101
  };
102
102
  function getAdcpVersion() {
103
103
  return ADCP_VERSION;
@@ -1,4 +1,4 @@
1
- const LIBRARY_VERSION = "14.0.0-beta.29";
1
+ const LIBRARY_VERSION = "14.0.0-beta.30";
2
2
  const ADCP_VERSION = "3.2.0-beta.11";
3
3
  const ADCP_MAJOR_VERSION = 3;
4
4
  const COMPATIBLE_ADCP_VERSIONS = [
@@ -61,10 +61,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
61
61
  "3.2-beta.11"
62
62
  ];
63
63
  const VERSION_INFO = {
64
- library: "14.0.0-beta.29",
64
+ library: "14.0.0-beta.30",
65
65
  adcp: "3.2.0-beta.11",
66
66
  compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
67
- generatedAt: "2026-09-02T21:45:21.388Z"
67
+ generatedAt: "2026-09-03T03:53:17.027Z"
68
68
  };
69
69
  function getAdcpVersion() {
70
70
  return ADCP_VERSION;
@@ -1,7 +1,7 @@
1
1
  # AdCP Type Summary
2
2
 
3
- > Generated at: 2026-09-02
4
- > @adcp/sdk v14.0.0-beta.29
3
+ > Generated at: 2026-09-03
4
+ > @adcp/sdk v14.0.0-beta.30
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-09-02
4
- > Library: @adcp/sdk v14.0.0-beta.29
3
+ > Generated at: 2026-09-03
4
+ > Library: @adcp/sdk v14.0.0-beta.30
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adcp/sdk",
3
- "version": "14.0.0-beta.29",
3
+ "version": "14.0.0-beta.30",
4
4
  "description": "AdCP SDK — client, server, and compliance harnesses for the AdContext Protocol (MCP + A2A)",
5
5
  "workspaces": [
6
6
  ".",