@adcp/sdk 15.9.0 → 16.0.0-beta.1

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 (295) hide show
  1. package/bin/adcp-identity.js +74 -0
  2. package/bin/adcp.js +2 -0
  3. package/dist/lib/adapters/keyed-account-backend.d.mts +37 -0
  4. package/dist/lib/adapters/keyed-account-backend.d.ts +37 -0
  5. package/dist/lib/adapters/keyed-account-backend.js +121 -0
  6. package/dist/lib/adapters/keyed-account-backend.mjs +94 -0
  7. package/dist/lib/adapters/keyed-account-store.d.mts +28 -0
  8. package/dist/lib/adapters/keyed-account-store.d.ts +28 -0
  9. package/dist/lib/adapters/keyed-account-store.js +227 -0
  10. package/dist/lib/adapters/keyed-account-store.mjs +203 -0
  11. package/dist/lib/core/SingleAgentClient.d.mts +16 -2
  12. package/dist/lib/core/SingleAgentClient.d.ts +16 -2
  13. package/dist/lib/core/SingleAgentClient.js +259 -62
  14. package/dist/lib/core/SingleAgentClient.mjs +261 -57
  15. package/dist/lib/core/TaskExecutor.d.mts +6 -0
  16. package/dist/lib/core/TaskExecutor.d.ts +6 -0
  17. package/dist/lib/core/TaskExecutor.js +66 -5
  18. package/dist/lib/core/TaskExecutor.mjs +71 -5
  19. package/dist/lib/core/postgres-webhook-registration-store.js +32 -5
  20. package/dist/lib/core/postgres-webhook-registration-store.mjs +32 -5
  21. package/dist/lib/core/redis-webhook-registration-store.js +23 -1
  22. package/dist/lib/core/redis-webhook-registration-store.mjs +23 -1
  23. package/dist/lib/core/webhook-registration.d.mts +7 -1
  24. package/dist/lib/core/webhook-registration.d.ts +7 -1
  25. package/dist/lib/core/webhook-registration.js +24 -2
  26. package/dist/lib/core/webhook-registration.mjs +23 -2
  27. package/dist/lib/identity-3.3/index.d.mts +10 -0
  28. package/dist/lib/identity-3.3/index.d.ts +10 -0
  29. package/dist/lib/identity-3.3/index.js +75 -0
  30. package/dist/lib/identity-3.3/index.mjs +46 -0
  31. package/dist/lib/identity-3.3/lifecycle.d.mts +113 -0
  32. package/dist/lib/identity-3.3/lifecycle.d.ts +113 -0
  33. package/dist/lib/identity-3.3/lifecycle.js +267 -0
  34. package/dist/lib/identity-3.3/lifecycle.mjs +240 -0
  35. package/dist/lib/identity-3.3/revocation.d.mts +50 -0
  36. package/dist/lib/identity-3.3/revocation.d.ts +50 -0
  37. package/dist/lib/identity-3.3/revocation.js +238 -0
  38. package/dist/lib/identity-3.3/revocation.mjs +216 -0
  39. package/dist/lib/identity-3.3/schemas.draft.d.mts +2472 -0
  40. package/dist/lib/identity-3.3/schemas.draft.d.ts +2472 -0
  41. package/dist/lib/identity-3.3/schemas.draft.js +1448 -0
  42. package/dist/lib/identity-3.3/schemas.draft.mjs +1428 -0
  43. package/dist/lib/identity-3.3/server.d.mts +34 -0
  44. package/dist/lib/identity-3.3/server.d.ts +34 -0
  45. package/dist/lib/identity-3.3/server.js +219 -0
  46. package/dist/lib/identity-3.3/server.mjs +194 -0
  47. package/dist/lib/identity-3.3/store.d.mts +24 -0
  48. package/dist/lib/identity-3.3/store.d.ts +24 -0
  49. package/dist/lib/identity-3.3/store.js +191 -0
  50. package/dist/lib/identity-3.3/store.mjs +169 -0
  51. package/dist/lib/identity-3.3/trust.d.mts +94 -0
  52. package/dist/lib/identity-3.3/trust.d.ts +94 -0
  53. package/dist/lib/identity-3.3/trust.js +278 -0
  54. package/dist/lib/identity-3.3/trust.mjs +239 -0
  55. package/dist/lib/identity-3.3/types.d.mts +127 -0
  56. package/dist/lib/identity-3.3/types.d.ts +127 -0
  57. package/dist/lib/identity-3.3/types.js +16 -0
  58. package/dist/lib/identity-3.3/types.mjs +0 -0
  59. package/dist/lib/identity-3.3/validation.d.mts +2 -0
  60. package/dist/lib/identity-3.3/validation.d.ts +2 -0
  61. package/dist/lib/identity-3.3/validation.js +125 -0
  62. package/dist/lib/identity-3.3/validation.mjs +91 -0
  63. package/dist/lib/index.d.mts +1 -1
  64. package/dist/lib/index.d.ts +1 -1
  65. package/dist/lib/reporting/azure/index.d.mts +5 -0
  66. package/dist/lib/reporting/azure/index.d.ts +5 -0
  67. package/dist/lib/reporting/azure/index.js +26 -7
  68. package/dist/lib/reporting/azure/index.mjs +26 -7
  69. package/dist/lib/reporting/bigquery/index.d.mts +80 -25
  70. package/dist/lib/reporting/bigquery/index.d.ts +80 -25
  71. package/dist/lib/reporting/bigquery/index.js +184 -81
  72. package/dist/lib/reporting/bigquery/index.mjs +182 -80
  73. package/dist/lib/reporting/gcs/adapter.d.mts +8 -1
  74. package/dist/lib/reporting/gcs/adapter.d.ts +8 -1
  75. package/dist/lib/reporting/gcs/errors.d.mts +6 -0
  76. package/dist/lib/reporting/gcs/errors.d.ts +6 -0
  77. package/dist/lib/reporting/gcs/fence.d.mts +5 -0
  78. package/dist/lib/reporting/gcs/fence.d.ts +5 -0
  79. package/dist/lib/reporting/gcs/index.d.mts +9 -0
  80. package/dist/lib/reporting/gcs/index.d.ts +9 -0
  81. package/dist/lib/reporting/gcs/reader.d.mts +27 -3
  82. package/dist/lib/reporting/gcs/reader.d.ts +27 -3
  83. package/dist/lib/reporting/gcs/row-provider.d.mts +7 -0
  84. package/dist/lib/reporting/gcs/row-provider.d.ts +7 -0
  85. package/dist/lib/reporting/gcs/row-provider.js +34 -14
  86. package/dist/lib/reporting/gcs/row-provider.mjs +34 -14
  87. package/dist/lib/reporting/ledger/change-feed.d.mts +22 -1
  88. package/dist/lib/reporting/ledger/change-feed.d.ts +22 -1
  89. package/dist/lib/reporting/ledger/index.d.mts +11 -0
  90. package/dist/lib/reporting/ledger/index.d.ts +11 -0
  91. package/dist/lib/reporting/ledger/managed-postgres.d.mts +8 -0
  92. package/dist/lib/reporting/ledger/managed-postgres.d.ts +8 -0
  93. package/dist/lib/reporting/ledger/managed-router.d.mts +27 -2
  94. package/dist/lib/reporting/ledger/managed-router.d.ts +27 -2
  95. package/dist/lib/reporting/ledger/managed.d.mts +86 -6
  96. package/dist/lib/reporting/ledger/managed.d.ts +86 -6
  97. package/dist/lib/reporting/ledger/notification-activity.d.mts +65 -3
  98. package/dist/lib/reporting/ledger/notification-activity.d.ts +65 -3
  99. package/dist/lib/reporting/ledger/object-writes.d.mts +64 -5
  100. package/dist/lib/reporting/ledger/object-writes.d.ts +64 -5
  101. package/dist/lib/reporting/ledger/postgres.d.mts +43 -9
  102. package/dist/lib/reporting/ledger/postgres.d.ts +43 -9
  103. package/dist/lib/reporting/ledger/postgres.js +43 -27
  104. package/dist/lib/reporting/ledger/postgres.mjs +43 -27
  105. package/dist/lib/reporting/ledger/row-encoding.d.mts +92 -6
  106. package/dist/lib/reporting/ledger/row-encoding.d.ts +92 -6
  107. package/dist/lib/reporting/ledger/row-encoding.js +8 -4
  108. package/dist/lib/reporting/ledger/row-encoding.mjs +6 -3
  109. package/dist/lib/reporting/ledger/row-storage-errors.d.mts +11 -1
  110. package/dist/lib/reporting/ledger/row-storage-errors.d.ts +11 -1
  111. package/dist/lib/reporting/ledger/row-storage-migration.d.mts +19 -1
  112. package/dist/lib/reporting/ledger/row-storage-migration.d.ts +19 -1
  113. package/dist/lib/reporting/ledger/row-storage-migration.js +133 -18
  114. package/dist/lib/reporting/ledger/row-storage-migration.mjs +133 -18
  115. package/dist/lib/reporting/ledger/row-storage-object.d.mts +103 -12
  116. package/dist/lib/reporting/ledger/row-storage-object.d.ts +103 -12
  117. package/dist/lib/reporting/ledger/row-storage-object.js +106 -31
  118. package/dist/lib/reporting/ledger/row-storage-object.mjs +104 -31
  119. package/dist/lib/reporting/ledger/row-storage.d.mts +87 -20
  120. package/dist/lib/reporting/ledger/row-storage.d.ts +87 -20
  121. package/dist/lib/reporting/ledger/row-storage.js +126 -66
  122. package/dist/lib/reporting/ledger/row-storage.mjs +129 -67
  123. package/dist/lib/reporting/ledger/schedule.d.mts +13 -0
  124. package/dist/lib/reporting/ledger/schedule.d.ts +13 -0
  125. package/dist/lib/reporting/ledger/schedule.js +24 -0
  126. package/dist/lib/reporting/ledger/schedule.mjs +23 -0
  127. package/dist/lib/reporting/ledger/types.d.mts +23 -1
  128. package/dist/lib/reporting/ledger/types.d.ts +23 -1
  129. package/dist/lib/reporting/s3/index.d.mts +5 -0
  130. package/dist/lib/reporting/s3/index.d.ts +5 -0
  131. package/dist/lib/reporting/s3/index.js +37 -14
  132. package/dist/lib/reporting/s3/index.mjs +37 -14
  133. package/dist/lib/reporting/service/index.d.mts +10 -0
  134. package/dist/lib/reporting/service/index.d.ts +10 -0
  135. package/dist/lib/reporting/service/maintenance.d.mts +28 -2
  136. package/dist/lib/reporting/service/maintenance.d.ts +28 -2
  137. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  138. package/dist/lib/server/account-sync-contract.d.mts +14 -0
  139. package/dist/lib/server/account-sync-contract.d.ts +14 -0
  140. package/dist/lib/server/account-sync-contract.js +225 -0
  141. package/dist/lib/server/account-sync-contract.mjs +197 -0
  142. package/dist/lib/server/adcp-server.js +5 -0
  143. package/dist/lib/server/adcp-server.mjs +10 -0
  144. package/dist/lib/server/auth-signature.d.mts +10 -0
  145. package/dist/lib/server/auth-signature.d.ts +10 -0
  146. package/dist/lib/server/auth-signature.js +61 -2
  147. package/dist/lib/server/auth-signature.mjs +65 -2
  148. package/dist/lib/server/auth.d.mts +6 -0
  149. package/dist/lib/server/auth.d.ts +6 -0
  150. package/dist/lib/server/auth.js +6 -0
  151. package/dist/lib/server/auth.mjs +6 -0
  152. package/dist/lib/server/create-adcp-server.d.mts +19 -5
  153. package/dist/lib/server/create-adcp-server.d.ts +19 -5
  154. package/dist/lib/server/create-adcp-server.js +238 -19
  155. package/dist/lib/server/create-adcp-server.mjs +240 -10
  156. package/dist/lib/server/decisioning/account.d.mts +24 -1
  157. package/dist/lib/server/decisioning/account.d.ts +24 -1
  158. package/dist/lib/server/decisioning/index.d.mts +1 -1
  159. package/dist/lib/server/decisioning/index.d.ts +1 -1
  160. package/dist/lib/server/decisioning/runtime/from-platform.d.mts +0 -50
  161. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +0 -50
  162. package/dist/lib/server/decisioning/runtime/from-platform.js +61 -11
  163. package/dist/lib/server/decisioning/runtime/from-platform.mjs +65 -12
  164. package/dist/lib/server/index.d.mts +2 -0
  165. package/dist/lib/server/index.d.ts +2 -0
  166. package/dist/lib/server/index.js +12 -0
  167. package/dist/lib/server/index.mjs +12 -0
  168. package/dist/lib/server/notification-subscriptions/runtime.js +9 -1
  169. package/dist/lib/server/notification-subscriptions/runtime.mjs +9 -1
  170. package/dist/lib/server/notification-subscriptions/types.d.mts +5 -0
  171. package/dist/lib/server/notification-subscriptions/types.d.ts +5 -0
  172. package/dist/lib/server/principal/types.d.mts +1 -1
  173. package/dist/lib/server/principal/types.d.ts +1 -1
  174. package/dist/lib/server/serve.js +5 -0
  175. package/dist/lib/server/serve.mjs +5 -0
  176. package/dist/lib/server/webhook-delivery/recovery.d.mts +1 -0
  177. package/dist/lib/server/webhook-delivery/recovery.d.ts +1 -0
  178. package/dist/lib/server/webhook-delivery/recovery.js +4 -0
  179. package/dist/lib/server/webhook-delivery/recovery.mjs +4 -0
  180. package/dist/lib/server/webhook-emitter.d.mts +10 -0
  181. package/dist/lib/server/webhook-emitter.d.ts +10 -0
  182. package/dist/lib/server/webhook-emitter.js +22 -0
  183. package/dist/lib/server/webhook-emitter.mjs +22 -0
  184. package/dist/lib/signing/agent-context.d.mts +0 -5
  185. package/dist/lib/signing/agent-context.d.ts +0 -5
  186. package/dist/lib/signing/agent-context.js +9 -1
  187. package/dist/lib/signing/agent-context.mjs +9 -1
  188. package/dist/lib/signing/agent-fetch.js +27 -2
  189. package/dist/lib/signing/agent-fetch.mjs +32 -2
  190. package/dist/lib/signing/agent-resolver/canonicalize.d.mts +10 -15
  191. package/dist/lib/signing/agent-resolver/canonicalize.d.ts +10 -15
  192. package/dist/lib/signing/agent-resolver/canonicalize.js +17 -5
  193. package/dist/lib/signing/agent-resolver/canonicalize.mjs +16 -5
  194. package/dist/lib/signing/agent-resolver/index.d.mts +1 -0
  195. package/dist/lib/signing/agent-resolver/index.d.ts +1 -0
  196. package/dist/lib/signing/agent-resolver/index.js +5 -0
  197. package/dist/lib/signing/agent-resolver/index.mjs +3 -0
  198. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.mts +3 -2
  199. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.ts +3 -2
  200. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.js +30 -3
  201. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.mjs +30 -3
  202. package/dist/lib/signing/agent-resolver/strict-json.d.mts +2 -2
  203. package/dist/lib/signing/agent-resolver/strict-json.d.ts +2 -2
  204. package/dist/lib/signing/agent-resolver/strict-json.js +5 -3
  205. package/dist/lib/signing/agent-resolver/strict-json.mjs +5 -3
  206. package/dist/lib/signing/brand-jwks.d.mts +2 -2
  207. package/dist/lib/signing/brand-jwks.d.ts +2 -2
  208. package/dist/lib/signing/brand-jwks.js +4 -4
  209. package/dist/lib/signing/brand-jwks.mjs +4 -4
  210. package/dist/lib/signing/client.d.mts +1 -0
  211. package/dist/lib/signing/client.d.ts +1 -0
  212. package/dist/lib/signing/client.js +5 -0
  213. package/dist/lib/signing/client.mjs +3 -0
  214. package/dist/lib/signing/jwks-https.d.mts +1 -1
  215. package/dist/lib/signing/jwks-https.d.ts +1 -1
  216. package/dist/lib/signing/jwks-https.js +1 -1
  217. package/dist/lib/signing/jwks-https.mjs +1 -1
  218. package/dist/lib/signing/jwks.d.mts +11 -3
  219. package/dist/lib/signing/jwks.d.ts +11 -3
  220. package/dist/lib/signing/jwks.js +1 -1
  221. package/dist/lib/signing/jwks.mjs +1 -1
  222. package/dist/lib/signing/parser.d.mts +1 -1
  223. package/dist/lib/signing/parser.d.ts +1 -1
  224. package/dist/lib/signing/parser.js +5 -3
  225. package/dist/lib/signing/parser.mjs +6 -4
  226. package/dist/lib/signing/revocation.d.mts +4 -1
  227. package/dist/lib/signing/revocation.d.ts +4 -1
  228. package/dist/lib/signing/revocation.js +33 -3
  229. package/dist/lib/signing/revocation.mjs +31 -2
  230. package/dist/lib/signing/server.d.mts +1 -1
  231. package/dist/lib/signing/server.d.ts +1 -1
  232. package/dist/lib/signing/server.js +4 -0
  233. package/dist/lib/signing/server.mjs +4 -0
  234. package/dist/lib/signing/types.d.mts +3 -0
  235. package/dist/lib/signing/types.d.ts +3 -0
  236. package/dist/lib/signing/web-bot-auth.d.mts +117 -0
  237. package/dist/lib/signing/web-bot-auth.d.ts +117 -0
  238. package/dist/lib/signing/web-bot-auth.js +660 -0
  239. package/dist/lib/signing/web-bot-auth.mjs +624 -0
  240. package/dist/lib/testing/client.d.mts +1 -4
  241. package/dist/lib/testing/client.d.ts +1 -4
  242. package/dist/lib/testing/client.js +141 -20
  243. package/dist/lib/testing/client.mjs +137 -19
  244. package/dist/lib/testing/compliance/comply.js +29 -10
  245. package/dist/lib/testing/compliance/comply.mjs +37 -11
  246. package/dist/lib/testing/storyboard/account-sync-contract.d.mts +3 -0
  247. package/dist/lib/testing/storyboard/account-sync-contract.d.ts +3 -0
  248. package/dist/lib/testing/storyboard/account-sync-contract.js +79 -0
  249. package/dist/lib/testing/storyboard/account-sync-contract.mjs +55 -0
  250. package/dist/lib/testing/storyboard/default-invariants.js +2 -0
  251. package/dist/lib/testing/storyboard/default-invariants.mjs +2 -0
  252. package/dist/lib/testing/storyboard/runner.js +23 -8
  253. package/dist/lib/testing/storyboard/runner.mjs +24 -8
  254. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  255. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  256. package/dist/lib/types/adcp.d.mts +4 -0
  257. package/dist/lib/types/adcp.d.ts +4 -0
  258. package/dist/lib/types/schemas.generated.d.ts +6 -6
  259. package/dist/lib/utils/capabilities.d.mts +1 -0
  260. package/dist/lib/utils/capabilities.d.ts +1 -0
  261. package/dist/lib/utils/capabilities.js +5 -0
  262. package/dist/lib/utils/capabilities.mjs +5 -0
  263. package/dist/lib/v2/projection/creative-delivery.d.mts +3 -1
  264. package/dist/lib/v2/projection/creative-delivery.d.ts +3 -1
  265. package/dist/lib/v2/projection/creative-delivery.js +26 -10
  266. package/dist/lib/v2/projection/creative-delivery.mjs +26 -10
  267. package/dist/lib/v2/projection/index.d.mts +1 -1
  268. package/dist/lib/v2/projection/index.d.ts +1 -1
  269. package/dist/lib/v2/projection/legacy-routes.d.mts +24 -2
  270. package/dist/lib/v2/projection/legacy-routes.d.ts +24 -2
  271. package/dist/lib/v2/projection/legacy-routes.js +28 -2
  272. package/dist/lib/v2/projection/legacy-routes.mjs +26 -2
  273. package/dist/lib/validation/schema-loader.d.mts +2 -0
  274. package/dist/lib/validation/schema-loader.d.ts +2 -0
  275. package/dist/lib/validation/schema-loader.js +43 -4
  276. package/dist/lib/validation/schema-loader.mjs +39 -3
  277. package/dist/lib/version.d.mts +3 -3
  278. package/dist/lib/version.d.ts +3 -3
  279. package/dist/lib/version.js +3 -3
  280. package/dist/lib/version.mjs +3 -3
  281. package/docs/TYPE-SUMMARY.md +2 -2
  282. package/docs/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +4 -0
  283. package/docs/guides/REPORTING-LEDGER-CUTOVER.md +1 -1
  284. package/docs/guides/REPORTING-LEDGER.md +132 -46
  285. package/docs/guides/REPORTING-OPERATIONS.md +25 -4
  286. package/docs/guides/REPORTING-STABILITY.md +76 -0
  287. package/docs/guides/account-resolution.md +101 -0
  288. package/docs/llms.txt +3 -2
  289. package/docs/migration-12-to-13.md +7 -0
  290. package/docs/migration-14.x-rc-worksheet.md +4 -4
  291. package/docs/migration-agent-identity-3.3.md +355 -0
  292. package/docs/migration-agent-resolution-3.3.md +5 -0
  293. package/docs/migration-reporting-row-storage-alignment.md +137 -0
  294. package/examples/storyboards/account-sync-contract.yaml +57 -0
  295. package/package.json +15 -1
@@ -0,0 +1,203 @@
1
+ import { createHash } from "node:crypto";
2
+ import { isDeepStrictEqual } from "node:util";
3
+ import { accountReferenceKey } from "../core/account-key.mjs";
4
+ import { defaultImplicitKeyFn } from "./implicit-account-store.mjs";
5
+ import { AdcpError } from "../server/decisioning/async-outcome.mjs";
6
+ import { toWireAccount } from "../server/decisioning/account.mjs";
7
+ import { isSandboxOrMockAccount } from "../server/account-mode.mjs";
8
+ import { isolateAccountCallbackInput } from "../server/account-sync-contract.mjs";
9
+ function entryRef(entry) {
10
+ return entry.account ?? entry;
11
+ }
12
+ function recordFor(records, ref) {
13
+ return "account_id" in ref ? records.find((row) => row.account.id === ref.account_id) : records.find((row) => row.key === accountReferenceKey(ref));
14
+ }
15
+ function resultRow(account, action) {
16
+ const wire = toWireAccount(account);
17
+ return { ...wire, brand: account.brand, operator: account.operator, action };
18
+ }
19
+ function createKeyedAccountStore(options) {
20
+ if (!options.namespace) throw new TypeError("A keyed account store requires a namespace");
21
+ const maxAccounts = options.maxAccounts ?? 1e3;
22
+ if (!Number.isSafeInteger(maxAccounts) || maxAccounts < 1)
23
+ throw new TypeError("maxAccounts must be a positive integer");
24
+ const principalKey = options.principalKey ?? ((ctx) => ctx?.authInfo ? defaultImplicitKeyFn(ctx.authInfo) : void 0);
25
+ const scopeFor = async (ctx) => {
26
+ const principal = await principalKey(options.principalKey && ctx ? isolateAccountCallbackInput(ctx) : ctx);
27
+ if (typeof principal !== "string" || !principal.trim())
28
+ throw new AdcpError("AUTH_MISSING", {
29
+ message: "An authenticated account principal is required.",
30
+ recovery: "terminal"
31
+ });
32
+ return JSON.stringify([options.namespace, principal]);
33
+ };
34
+ return {
35
+ resolution: options.resolution ?? "explicit",
36
+ strictIdempotency: true,
37
+ async resolve(ref, ctx) {
38
+ const records = (await options.backend.load(await scopeFor(ctx)))?.records ?? [];
39
+ return ref ? recordFor(records, ref)?.account ?? null : records.length === 1 ? records[0].account : null;
40
+ },
41
+ async upsert(entries, ctx) {
42
+ const dryRun = ctx?.input?.dry_run === true;
43
+ const deleteMissing = ctx?.input?.delete_missing === true;
44
+ const input = ctx?.input === void 0 ? void 0 : structuredClone(ctx.input);
45
+ entries = structuredClone(entries);
46
+ const scope = await scopeFor(ctx);
47
+ if (deleteMissing)
48
+ throw new AdcpError("UNSUPPORTED_FEATURE", {
49
+ message: "The keyed account store uses additive syncs; close accounts explicitly.",
50
+ recovery: "terminal"
51
+ });
52
+ for (let attempt = 0; attempt < 10; attempt++) {
53
+ const snapshot = await options.backend.load(scope);
54
+ const records = structuredClone(snapshot?.records ?? []);
55
+ const rows = [];
56
+ for (const entry of entries) {
57
+ const ref = entryRef(entry);
58
+ if ("account_id" in ref && !recordFor(records, ref))
59
+ throw new AdcpError("ACCOUNT_NOT_FOUND", { message: "Account not found", recovery: "terminal" });
60
+ }
61
+ for (const entry of entries) {
62
+ const ref = entryRef(entry);
63
+ const hit = recordFor(records, ref);
64
+ const source = hit?.ref ?? ref;
65
+ const natural = {
66
+ brand: source.brand,
67
+ operator: source.operator,
68
+ ...source.operator_unit !== void 0 && { operator_unit: source.operator_unit },
69
+ ...source.currency !== void 0 && { currency: source.currency },
70
+ ...source.timezone !== void 0 && { timezone: source.timezone },
71
+ ...source.sandbox !== void 0 && { sandbox: source.sandbox }
72
+ };
73
+ const key = accountReferenceKey(natural);
74
+ const accountId = hit?.account.id ?? `acct_${createHash("sha256").update(JSON.stringify([scope, key])).digest("hex")}`;
75
+ try {
76
+ if (!hit && records.length >= maxAccounts)
77
+ throw new AdcpError("INVALID_REQUEST", {
78
+ message: "The account limit for this principal has been reached.",
79
+ recovery: "correctable"
80
+ });
81
+ if ("account" in entry && !hit)
82
+ throw new AdcpError("UNSUPPORTED_PROVISIONING", {
83
+ message: "Settings updates require an existing account.",
84
+ recovery: "correctable"
85
+ });
86
+ if ("operator_identity" in entry)
87
+ throw new AdcpError("UNSUPPORTED_FEATURE", {
88
+ message: "The keyed account store does not implement identity reconciliation.",
89
+ recovery: "terminal"
90
+ });
91
+ const built = await options.buildAccount(
92
+ structuredClone(entry),
93
+ {
94
+ accountId,
95
+ existing: hit ? structuredClone(hit.account) : null,
96
+ dryRun,
97
+ ctx: ctx && isolateAccountCallbackInput({ ...ctx, ...input !== void 0 && { input } })
98
+ }
99
+ );
100
+ if (built.id !== accountId) throw new Error("buildAccount must preserve the supplied accountId");
101
+ const { authInfo: _authInfo, ...persisted } = built;
102
+ const account = JSON.parse(
103
+ JSON.stringify({
104
+ ...persisted,
105
+ brand: natural.brand,
106
+ operator: natural.operator
107
+ })
108
+ );
109
+ if (natural.sandbox === true && !isSandboxOrMockAccount(account))
110
+ throw new AdcpError("UNSUPPORTED_FEATURE", {
111
+ message: "The seller did not authorize a sandbox account.",
112
+ recovery: "terminal"
113
+ });
114
+ const request = entry;
115
+ if (request.billing === "agent" && account.billing?.invoicedTo !== "agent") {
116
+ throw new AdcpError("BILLING_NOT_SUPPORTED", {
117
+ message: "The seller did not accept agent billing.",
118
+ recovery: "correctable"
119
+ });
120
+ }
121
+ if (account.status === "active" && request.payment_terms !== void 0 && account.payment_terms !== request.payment_terms) {
122
+ throw new AdcpError("PAYMENT_TERMS_NOT_SUPPORTED", {
123
+ message: "The seller did not accept the requested payment terms.",
124
+ recovery: "correctable"
125
+ });
126
+ }
127
+ if (account.billing?.invoicedTo === "agent" && account.payment_terms === void 0) {
128
+ throw new AdcpError("PAYMENT_TERMS_NOT_SUPPORTED", {
129
+ message: "Agent-billed accounts require explicit payment terms.",
130
+ recovery: "correctable"
131
+ });
132
+ }
133
+ const action = !hit ? "created" : isDeepStrictEqual(hit.account, account) ? "unchanged" : "updated";
134
+ rows.push(resultRow(account, action));
135
+ const record = { key, ref: natural, account };
136
+ if (hit) records[records.indexOf(hit)] = record;
137
+ else records.push(record);
138
+ } catch (error) {
139
+ if (!(error instanceof AdcpError)) throw error;
140
+ rows.push({
141
+ brand: natural.brand,
142
+ operator: natural.operator,
143
+ ...hit && { account_id: hit.account.id },
144
+ action: "failed",
145
+ status: hit?.account.status ?? "rejected",
146
+ errors: [error.toStructuredError()]
147
+ });
148
+ }
149
+ }
150
+ if (dryRun || isDeepStrictEqual(snapshot?.records ?? [], records)) return rows;
151
+ if (await options.backend.compareAndSwap(scope, snapshot?.version ?? null, records)) return rows;
152
+ }
153
+ throw new AdcpError("CONFLICT", {
154
+ message: "Concurrent account sync; retry the request.",
155
+ recovery: "correctable"
156
+ });
157
+ },
158
+ async list(request, ctx) {
159
+ const scope = await scopeFor(ctx);
160
+ const snapshot = await options.backend.load(scope);
161
+ let records = snapshot?.records ?? [];
162
+ if (request.account) records = records.filter((record) => recordFor([record], request.account) !== void 0);
163
+ if (request.status) records = records.filter((record) => record.account.status === request.status);
164
+ if (request.sandbox !== void 0)
165
+ records = records.filter((record) => isSandboxOrMockAccount(record.account) === request.sandbox);
166
+ const cursor = request.pagination?.cursor;
167
+ let offset = 0;
168
+ if (cursor !== void 0) {
169
+ try {
170
+ const parsed = JSON.parse(Buffer.from(cursor, "base64url").toString());
171
+ const binding2 = createHash("sha256").update(JSON.stringify([scope, snapshot?.version, request.account, request.status, request.sandbox])).digest("hex");
172
+ if (parsed.binding !== binding2 || !Number.isSafeInteger(parsed.offset) || parsed.offset < 0)
173
+ throw new Error();
174
+ offset = parsed.offset;
175
+ } catch {
176
+ throw new AdcpError("INVALID_REQUEST", {
177
+ message: "Invalid or stale account cursor.",
178
+ recovery: "correctable"
179
+ });
180
+ }
181
+ }
182
+ const limit = request.pagination?.max_results ?? 100;
183
+ if (!Number.isSafeInteger(limit) || limit < 1)
184
+ throw new AdcpError("INVALID_REQUEST", {
185
+ message: "max_results must be a positive integer.",
186
+ recovery: "correctable"
187
+ });
188
+ const items = records.slice(offset, offset + limit).map((record) => record.account);
189
+ const next = offset + items.length;
190
+ const binding = createHash("sha256").update(JSON.stringify([scope, snapshot?.version, request.account, request.status, request.sandbox])).digest("hex");
191
+ return {
192
+ items,
193
+ totalCount: records.length,
194
+ ...next < records.length && {
195
+ nextCursor: Buffer.from(JSON.stringify({ binding, offset: next })).toString("base64url")
196
+ }
197
+ };
198
+ }
199
+ };
200
+ }
201
+ export {
202
+ createKeyedAccountStore
203
+ };
@@ -1,7 +1,7 @@
1
1
  import { type ListProductsResponseWithSupplyPath, type ProductSupplyPathOptions } from '../supply-path/products.mjs';
2
2
  import type { AccountReference, AgentConfig } from '../types/index.mjs';
3
3
  import { type AdcpVersion } from '../version.mjs';
4
- import type { GetProductsRequest, GetProductsResponse, ListProductsRequest, ListCreativeFormatsRequest, ListCreativeFormatsResponse, ListTransformersRequest, ListTransformersResponse, CreateMediaBuyRequest, CreateMediaBuyResponse, UpdateMediaBuyRequest, UpdateMediaBuyResponse, SyncCreativesRequest, SyncCreativesResponse, ListCreativesRequest, ListCreativesResponse, GetMediaBuysRequest, GetMediaBuysResponse, GetMediaBuyDeliveryRequest, GetMediaBuyDeliveryResponse, GetCreativeDeliveryRequest, GetCreativeDeliveryResponse, ProvidePerformanceFeedbackRequest, ProvidePerformanceFeedbackResponse, GetSignalsRequest, GetSignalsResponse, ActivateSignalRequest, ActivateSignalResponse, PreviewCreativeRequest, PreviewCreativeResponse, BuildCreativeRequest, BuildCreativeResponse, Format, GetAdCPCapabilitiesRequest, GetAdCPCapabilitiesResponse, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, ListAccountsResponse, SyncAccountsRequest, SyncAccountsResponse, SyncAudiencesRequest, SyncAudiencesResponse, CreatePropertyListRequest, CreatePropertyListResponse, GetPropertyListRequest, GetPropertyListResponse, UpdatePropertyListRequest, UpdatePropertyListResponse, ListPropertyListsRequest, ListPropertyListsResponse, DeletePropertyListRequest, DeletePropertyListResponse, ListContentStandardsRequest, ListContentStandardsResponse, GetContentStandardsRequest, GetContentStandardsResponse, CalibrateContentRequest, CalibrateContentResponse, ValidateContentDeliveryRequest, ValidateContentDeliveryResponse, SIGetOfferingRequest, SIGetOfferingResponse, SIInitiateSessionRequest, SIInitiateSessionResponse, SISendMessageRequest, SISendMessageResponse, SITerminateSessionRequest, SITerminateSessionResponse, SyncPlansRequest, SyncPlansResponse, GetPlanAuditLogsRequest, GetPlanAuditLogsResponse, GetPrincipalRequest, GetPrincipalResponse, SyncPrincipalRequest, SyncPrincipalResponse, OutcomeType } from '../types/tools.generated.mjs';
4
+ import type { GetProductsRequest, GetProductsResponse, ListProductsRequest, ListCreativeFormatsRequest, ListCreativeFormatsResponse, ListTransformersRequest, ListTransformersResponse, CreateMediaBuyRequest, CreateMediaBuyResponse, UpdateMediaBuyRequest, UpdateMediaBuyResponse, SyncCreativesRequest, SyncCreativesResponse, ListCreativesRequest, ListCreativesResponse, GetMediaBuysRequest, GetMediaBuysResponse, GetMediaBuyDeliveryRequest, GetMediaBuyDeliveryResponse, GetCreativeDeliveryRequest, GetCreativeDeliveryResponse, ProvidePerformanceFeedbackRequest, ProvidePerformanceFeedbackResponse, GetSignalsRequest, GetSignalsResponse, ActivateSignalRequest, ActivateSignalResponse, PreviewCreativeRequest, PreviewCreativeResponse, BuildCreativeRequest, BuildCreativeResponse, Format, GetAdCPCapabilitiesRequest, GetAdCPCapabilitiesResponse, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, ListAccountsResponse, SyncAccountsRequest, SyncAccountsResponse, SyncAudiencesRequest, SyncAudiencesResponse, CreatePropertyListRequest, CreatePropertyListResponse, GetPropertyListRequest, GetPropertyListResponse, UpdatePropertyListRequest, UpdatePropertyListResponse, ListPropertyListsRequest, ListPropertyListsResponse, DeletePropertyListRequest, DeletePropertyListResponse, ListContentStandardsRequest, ListContentStandardsResponse, GetContentStandardsRequest, GetContentStandardsResponse, CalibrateContentRequest, CalibrateContentResponse, ValidateContentDeliveryRequest, ValidateContentDeliveryResponse, SIGetOfferingRequest, SIGetOfferingResponse, SIInitiateSessionRequest, SIInitiateSessionResponse, SISendMessageRequest, SISendMessageResponse, SITerminateSessionRequest, SITerminateSessionResponse, SyncPlansRequest, SyncPlansResponse, GetPlanAuditLogsRequest, GetPlanAuditLogsResponse, GetPrincipalRequest, SyncPrincipalRequest, SyncPrincipalResponse, OutcomeType } from '../types/tools.generated.mjs';
5
5
  import { type MutatingRequestInput } from '../utils/idempotency.mjs';
6
6
  import type { MCPWebhookPayload, TaskStatus } from '../types/core.generated.mjs';
7
7
  type A2ATask = Record<string, any>;
@@ -96,6 +96,10 @@ export type WebhookParseErrorCode = WebhookSignatureErrorCode | 'webhook_signatu
96
96
  */
97
97
  | 'webhook_unverifiable' | 'webhook_registration_not_found' | 'webhook_registration_mismatch' | 'webhook_verification_context_missing' | 'webhook_registration_store_unavailable' | 'webhook_durable_settlement_unavailable' | 'webhook_publication_in_progress' | 'webhook_idempotency_conflict' | 'webhook_verification_unavailable';
98
98
  export interface WebhookVerificationConfig {
99
+ webBotAuth?: {
100
+ directory: import('../signing/web-bot-auth.mjs').SignatureDirectoryResolver;
101
+ isRevoked: (origin: string, keyid: string) => Promise<boolean>;
102
+ };
99
103
  /** Applicable pins from persisted media-buy records. Reuse refresh callbacks bound to the seller/publisher/tenant across deliveries to share their cooldown. Never use webhook payload fields. */
100
104
  publisherPins?: (registration: Readonly<WebhookRegistration>) => Promise<readonly import('../signing/publisher-pins.mjs').PublisherSigningKeyPin[]>;
101
105
  /** Local diagnostics for request_signature_* discovery causes. */
@@ -201,6 +205,9 @@ export interface StatusHandlerErrorContext {
201
205
  * Configuration for SingleAgentClient (and multi-agent client)
202
206
  */
203
207
  export interface SingleAgentClientConfig extends ConversationConfig {
208
+ /** Enable pinned draft identity schemas and positively negotiated 3.3 webhook rules. */
209
+ experimentalIdentity33?: boolean;
210
+ webhookSigningProfile?: 'adcp/webhook-signing/v1' | 'web-bot-auth';
204
211
  /** Default off disables provisioning gates; auto/strict use the provisioning registry. */
205
212
  accountPolicy?: AccountPolicy;
206
213
  /** Auto selects seller IDs only with stable_account_id or an AdCP 4+ wire contract. Natural-key preserves legacy implicit references. */
@@ -553,6 +560,7 @@ export declare class SingleAgentClient {
553
560
  private discoveredMcpEraAt;
554
561
  private canonicalBaseUrl?;
555
562
  private cachedCapabilities?;
563
+ private runAgentInfo?;
556
564
  private cachedToolSchemas?;
557
565
  private primedCapabilitiesExpiresAt?;
558
566
  private capabilityEvidenceScopeKey;
@@ -1136,7 +1144,7 @@ export declare class SingleAgentClient {
1136
1144
  /** Read the durable change feed for one account. */
1137
1145
  listAccountChanges(params: ListAccountChangesRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ListAccountChangesResponse>>;
1138
1146
  /** Read the authenticated caller's durable principal configuration. */
1139
- getPrincipal(params?: GetPrincipalRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<GetPrincipalResponse>>;
1147
+ getPrincipal(params?: GetPrincipalRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<import('../identity-3.3/types.mjs').Identity33GetPrincipalResponse>>;
1140
1148
  /** Atomically replace selected sections of the authenticated caller's principal configuration. */
1141
1149
  syncPrincipal(params: MutatingRequestInput<SyncPrincipalRequest>, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SyncPrincipalResponse>>;
1142
1150
  /**
@@ -1492,6 +1500,7 @@ export declare class SingleAgentClient {
1492
1500
  parameters?: string[];
1493
1501
  }>;
1494
1502
  }>;
1503
+ private getAgentInfoLive;
1495
1504
  /**
1496
1505
  * Get agent capabilities, including AdCP version support
1497
1506
  *
@@ -1535,6 +1544,8 @@ export declare class SingleAgentClient {
1535
1544
  getCapabilityEvidenceScope(): CapabilityEvidenceScope;
1536
1545
  private currentCapabilityEvidenceAuthMaterial;
1537
1546
  private synchronizeCapabilityEvidenceAuthorizationScope;
1547
+ /** A comply() run owns its configured fetch; per-call transport changes still discover separately. */
1548
+ private usesScopedDiscoveryTransport;
1538
1549
  /**
1539
1550
  * Reuse a fresh capability observation made by the embedding application.
1540
1551
  *
@@ -1858,6 +1869,9 @@ export declare class SingleAgentClient {
1858
1869
  * injected fields before the adapter gets a chance to clean them up, so
1859
1870
  * the two passes have to agree on "extra keys are fine."
1860
1871
  */
1872
+ private usesIdentity33Schemas;
1873
+ private usesSigned33Webhooks;
1874
+ private selectedWebhookSigningProfile;
1861
1875
  private validateRequest;
1862
1876
  }
1863
1877
  /**
@@ -1,7 +1,7 @@
1
1
  import { type ListProductsResponseWithSupplyPath, type ProductSupplyPathOptions } from '../supply-path/products';
2
2
  import type { AccountReference, AgentConfig } from '../types';
3
3
  import { type AdcpVersion } from '../version';
4
- import type { GetProductsRequest, GetProductsResponse, ListProductsRequest, ListCreativeFormatsRequest, ListCreativeFormatsResponse, ListTransformersRequest, ListTransformersResponse, CreateMediaBuyRequest, CreateMediaBuyResponse, UpdateMediaBuyRequest, UpdateMediaBuyResponse, SyncCreativesRequest, SyncCreativesResponse, ListCreativesRequest, ListCreativesResponse, GetMediaBuysRequest, GetMediaBuysResponse, GetMediaBuyDeliveryRequest, GetMediaBuyDeliveryResponse, GetCreativeDeliveryRequest, GetCreativeDeliveryResponse, ProvidePerformanceFeedbackRequest, ProvidePerformanceFeedbackResponse, GetSignalsRequest, GetSignalsResponse, ActivateSignalRequest, ActivateSignalResponse, PreviewCreativeRequest, PreviewCreativeResponse, BuildCreativeRequest, BuildCreativeResponse, Format, GetAdCPCapabilitiesRequest, GetAdCPCapabilitiesResponse, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, ListAccountsResponse, SyncAccountsRequest, SyncAccountsResponse, SyncAudiencesRequest, SyncAudiencesResponse, CreatePropertyListRequest, CreatePropertyListResponse, GetPropertyListRequest, GetPropertyListResponse, UpdatePropertyListRequest, UpdatePropertyListResponse, ListPropertyListsRequest, ListPropertyListsResponse, DeletePropertyListRequest, DeletePropertyListResponse, ListContentStandardsRequest, ListContentStandardsResponse, GetContentStandardsRequest, GetContentStandardsResponse, CalibrateContentRequest, CalibrateContentResponse, ValidateContentDeliveryRequest, ValidateContentDeliveryResponse, SIGetOfferingRequest, SIGetOfferingResponse, SIInitiateSessionRequest, SIInitiateSessionResponse, SISendMessageRequest, SISendMessageResponse, SITerminateSessionRequest, SITerminateSessionResponse, SyncPlansRequest, SyncPlansResponse, GetPlanAuditLogsRequest, GetPlanAuditLogsResponse, GetPrincipalRequest, GetPrincipalResponse, SyncPrincipalRequest, SyncPrincipalResponse, OutcomeType } from '../types/tools.generated';
4
+ import type { GetProductsRequest, GetProductsResponse, ListProductsRequest, ListCreativeFormatsRequest, ListCreativeFormatsResponse, ListTransformersRequest, ListTransformersResponse, CreateMediaBuyRequest, CreateMediaBuyResponse, UpdateMediaBuyRequest, UpdateMediaBuyResponse, SyncCreativesRequest, SyncCreativesResponse, ListCreativesRequest, ListCreativesResponse, GetMediaBuysRequest, GetMediaBuysResponse, GetMediaBuyDeliveryRequest, GetMediaBuyDeliveryResponse, GetCreativeDeliveryRequest, GetCreativeDeliveryResponse, ProvidePerformanceFeedbackRequest, ProvidePerformanceFeedbackResponse, GetSignalsRequest, GetSignalsResponse, ActivateSignalRequest, ActivateSignalResponse, PreviewCreativeRequest, PreviewCreativeResponse, BuildCreativeRequest, BuildCreativeResponse, Format, GetAdCPCapabilitiesRequest, GetAdCPCapabilitiesResponse, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, ListAccountsResponse, SyncAccountsRequest, SyncAccountsResponse, SyncAudiencesRequest, SyncAudiencesResponse, CreatePropertyListRequest, CreatePropertyListResponse, GetPropertyListRequest, GetPropertyListResponse, UpdatePropertyListRequest, UpdatePropertyListResponse, ListPropertyListsRequest, ListPropertyListsResponse, DeletePropertyListRequest, DeletePropertyListResponse, ListContentStandardsRequest, ListContentStandardsResponse, GetContentStandardsRequest, GetContentStandardsResponse, CalibrateContentRequest, CalibrateContentResponse, ValidateContentDeliveryRequest, ValidateContentDeliveryResponse, SIGetOfferingRequest, SIGetOfferingResponse, SIInitiateSessionRequest, SIInitiateSessionResponse, SISendMessageRequest, SISendMessageResponse, SITerminateSessionRequest, SITerminateSessionResponse, SyncPlansRequest, SyncPlansResponse, GetPlanAuditLogsRequest, GetPlanAuditLogsResponse, GetPrincipalRequest, SyncPrincipalRequest, SyncPrincipalResponse, OutcomeType } from '../types/tools.generated';
5
5
  import { type MutatingRequestInput } from '../utils/idempotency';
6
6
  import type { MCPWebhookPayload, TaskStatus } from '../types/core.generated';
7
7
  type A2ATask = Record<string, any>;
@@ -96,6 +96,10 @@ export type WebhookParseErrorCode = WebhookSignatureErrorCode | 'webhook_signatu
96
96
  */
97
97
  | 'webhook_unverifiable' | 'webhook_registration_not_found' | 'webhook_registration_mismatch' | 'webhook_verification_context_missing' | 'webhook_registration_store_unavailable' | 'webhook_durable_settlement_unavailable' | 'webhook_publication_in_progress' | 'webhook_idempotency_conflict' | 'webhook_verification_unavailable';
98
98
  export interface WebhookVerificationConfig {
99
+ webBotAuth?: {
100
+ directory: import('../signing/web-bot-auth').SignatureDirectoryResolver;
101
+ isRevoked: (origin: string, keyid: string) => Promise<boolean>;
102
+ };
99
103
  /** Applicable pins from persisted media-buy records. Reuse refresh callbacks bound to the seller/publisher/tenant across deliveries to share their cooldown. Never use webhook payload fields. */
100
104
  publisherPins?: (registration: Readonly<WebhookRegistration>) => Promise<readonly import('../signing/publisher-pins').PublisherSigningKeyPin[]>;
101
105
  /** Local diagnostics for request_signature_* discovery causes. */
@@ -201,6 +205,9 @@ export interface StatusHandlerErrorContext {
201
205
  * Configuration for SingleAgentClient (and multi-agent client)
202
206
  */
203
207
  export interface SingleAgentClientConfig extends ConversationConfig {
208
+ /** Enable pinned draft identity schemas and positively negotiated 3.3 webhook rules. */
209
+ experimentalIdentity33?: boolean;
210
+ webhookSigningProfile?: 'adcp/webhook-signing/v1' | 'web-bot-auth';
204
211
  /** Default off disables provisioning gates; auto/strict use the provisioning registry. */
205
212
  accountPolicy?: AccountPolicy;
206
213
  /** Auto selects seller IDs only with stable_account_id or an AdCP 4+ wire contract. Natural-key preserves legacy implicit references. */
@@ -553,6 +560,7 @@ export declare class SingleAgentClient {
553
560
  private discoveredMcpEraAt;
554
561
  private canonicalBaseUrl?;
555
562
  private cachedCapabilities?;
563
+ private runAgentInfo?;
556
564
  private cachedToolSchemas?;
557
565
  private primedCapabilitiesExpiresAt?;
558
566
  private capabilityEvidenceScopeKey;
@@ -1136,7 +1144,7 @@ export declare class SingleAgentClient {
1136
1144
  /** Read the durable change feed for one account. */
1137
1145
  listAccountChanges(params: ListAccountChangesRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ListAccountChangesResponse>>;
1138
1146
  /** Read the authenticated caller's durable principal configuration. */
1139
- getPrincipal(params?: GetPrincipalRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<GetPrincipalResponse>>;
1147
+ getPrincipal(params?: GetPrincipalRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<import('../identity-3.3/types').Identity33GetPrincipalResponse>>;
1140
1148
  /** Atomically replace selected sections of the authenticated caller's principal configuration. */
1141
1149
  syncPrincipal(params: MutatingRequestInput<SyncPrincipalRequest>, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SyncPrincipalResponse>>;
1142
1150
  /**
@@ -1492,6 +1500,7 @@ export declare class SingleAgentClient {
1492
1500
  parameters?: string[];
1493
1501
  }>;
1494
1502
  }>;
1503
+ private getAgentInfoLive;
1495
1504
  /**
1496
1505
  * Get agent capabilities, including AdCP version support
1497
1506
  *
@@ -1535,6 +1544,8 @@ export declare class SingleAgentClient {
1535
1544
  getCapabilityEvidenceScope(): CapabilityEvidenceScope;
1536
1545
  private currentCapabilityEvidenceAuthMaterial;
1537
1546
  private synchronizeCapabilityEvidenceAuthorizationScope;
1547
+ /** A comply() run owns its configured fetch; per-call transport changes still discover separately. */
1548
+ private usesScopedDiscoveryTransport;
1538
1549
  /**
1539
1550
  * Reuse a fresh capability observation made by the embedding application.
1540
1551
  *
@@ -1858,6 +1869,9 @@ export declare class SingleAgentClient {
1858
1869
  * injected fields before the adapter gets a chance to clean them up, so
1859
1870
  * the two passes have to agree on "extra keys are fine."
1860
1871
  */
1872
+ private usesIdentity33Schemas;
1873
+ private usesSigned33Webhooks;
1874
+ private selectedWebhookSigningProfile;
1861
1875
  private validateRequest;
1862
1876
  }
1863
1877
  /**