@adcp/sdk 16.0.0 → 16.1.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 (57) hide show
  1. package/README.md +52 -0
  2. package/bin/adcp-identity.js +3 -2
  3. package/dist/lib/client/core.d.mts +1 -1
  4. package/dist/lib/client/core.d.ts +1 -1
  5. package/dist/lib/core/AgentClient.d.mts +8 -1
  6. package/dist/lib/core/AgentClient.d.ts +8 -1
  7. package/dist/lib/core/AgentClient.js +10 -0
  8. package/dist/lib/core/AgentClient.mjs +10 -0
  9. package/dist/lib/core/AsyncHandler.d.mts +2 -0
  10. package/dist/lib/core/AsyncHandler.d.ts +2 -0
  11. package/dist/lib/core/AsyncHandler.js +1 -1
  12. package/dist/lib/core/AsyncHandler.mjs +1 -1
  13. package/dist/lib/core/ConversationTypes.d.mts +32 -0
  14. package/dist/lib/core/ConversationTypes.d.ts +32 -0
  15. package/dist/lib/core/SingleAgentClient.d.mts +11 -1
  16. package/dist/lib/core/SingleAgentClient.d.ts +11 -1
  17. package/dist/lib/core/SingleAgentClient.js +25 -6
  18. package/dist/lib/core/SingleAgentClient.mjs +26 -7
  19. package/dist/lib/core/TaskExecutor.d.mts +3 -1
  20. package/dist/lib/core/TaskExecutor.d.ts +3 -1
  21. package/dist/lib/core/TaskExecutor.js +127 -34
  22. package/dist/lib/core/TaskExecutor.mjs +127 -34
  23. package/dist/lib/core/task-deadline.d.mts +2 -0
  24. package/dist/lib/core/task-deadline.d.ts +2 -0
  25. package/dist/lib/core/task-deadline.js +20 -2
  26. package/dist/lib/core/task-deadline.mjs +19 -2
  27. package/dist/lib/identity-3.3/schemas.draft.js +1 -1
  28. package/dist/lib/identity-3.3/schemas.draft.mjs +1 -1
  29. package/dist/lib/identity-3.3/trust.d.mts +8 -0
  30. package/dist/lib/identity-3.3/trust.d.ts +8 -0
  31. package/dist/lib/identity-3.3/trust.js +41 -12
  32. package/dist/lib/identity-3.3/trust.mjs +40 -12
  33. package/dist/lib/index.d.mts +1 -1
  34. package/dist/lib/index.d.ts +1 -1
  35. package/dist/lib/server/account-sync-contract.js +4 -1
  36. package/dist/lib/server/account-sync-contract.mjs +4 -1
  37. package/dist/lib/server/decisioning/runtime/from-platform.js +22 -17
  38. package/dist/lib/server/decisioning/runtime/from-platform.mjs +22 -17
  39. package/dist/lib/signing/web-bot-auth.js +20 -5
  40. package/dist/lib/signing/web-bot-auth.mjs +21 -6
  41. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  42. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  43. package/dist/lib/v2/projection/catalog.d.mts +6 -0
  44. package/dist/lib/v2/projection/catalog.d.ts +6 -0
  45. package/dist/lib/v2/projection/catalog.js +5 -0
  46. package/dist/lib/v2/projection/catalog.mjs +4 -0
  47. package/dist/lib/v2/projection/v1-to-v2.js +3 -2
  48. package/dist/lib/v2/projection/v1-to-v2.mjs +4 -3
  49. package/dist/lib/version.d.mts +3 -3
  50. package/dist/lib/version.d.ts +3 -3
  51. package/dist/lib/version.js +3 -3
  52. package/dist/lib/version.mjs +3 -3
  53. package/docs/TYPE-SUMMARY.md +12 -2
  54. package/docs/llms.txt +3 -3
  55. package/docs/migration-14.x-rc-worksheet.md +4 -4
  56. package/docs/migration-agent-identity-3.3.md +21 -13
  57. package/package.json +1 -1
package/docs/llms.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  # Ad Context Protocol (AdCP)
2
2
 
3
- > Generated at: 2026-10-19
4
- > Library: @adcp/sdk v16.0.0
3
+ > Generated at: 2026-10-20
4
+ > Library: @adcp/sdk v16.1.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.0`; 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.1`; 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.0.0` |
20
- | npm integrity | registry-derived after publication; run `npm view @adcp/sdk@16.0.0 dist.integrity` |
19
+ | Checkout `package.json` version | `@adcp/sdk@16.1.0` |
20
+ | npm integrity | registry-derived after publication; run `npm view @adcp/sdk@16.1.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.0.0'
30
- npm view '@adcp/sdk@16.0.0' dist.integrity
29
+ npm install --save-exact '@adcp/sdk@16.1.0'
30
+ npm view '@adcp/sdk@16.1.0' dist.integrity
31
31
  ```
32
32
 
33
33
  ### Required and optional peers
@@ -155,12 +155,14 @@ parameter is a Token (WBA section 5.2.1), and the verifier accepts
155
155
  type, which leaves no member to resolve (403).
156
156
 
157
157
  `SignatureDirectoryResolver` derives the directory from the covered canonical
158
- origin. Directories must be signed (WBA Appendix B.1): it validates a
159
- possession signature for every key the profile can use, covering
160
- `"@authority";req` and `content-digest`, and the exact body digest before
161
- caching keys. It ignores keys the profile cannot use, such as a P-256 key, and
162
- any signature they made (RFC 7517 section 5). An unsigned directory, one
163
- with no usable key, or one that publishes private key material for any key,
158
+ origin. Directories must be signed (WBA Appendix B.1): it uses each Ed25519
159
+ key that has a valid possession signature, covering `"@authority";req` and
160
+ `content-digest`, and validates the exact body digest before caching keys. It
161
+ ignores every other key and any signature it made: a key the profile cannot
162
+ use, such as a P-256 key, a key it cannot import, such as an Ed25519 key with
163
+ no `x` (RFC 7517 section 5), and a key without a valid signature (WBA Appendix
164
+ B.1; directory draft section 5). An unsigned directory, one with no validly
165
+ signed Ed25519 key, or one that publishes private key material for any key,
164
166
  usable or not, is a discovery failure. Its audit proof retains the signed body and
165
167
  headers. Verification requires this resolver so context-free JWKS adapters cannot
166
168
  attribute a key to an arbitrary origin. Discovery uses HTTPS, DNS pinning, no redirects, a 256 KiB cap, a
@@ -359,7 +361,12 @@ operator) to the signer's operator, or a two-link chain through the account
359
361
  operator, is accepted. The
360
362
  intersection must cover the actual brand IDs, countries, scope, signer-origin
361
363
  narrowing and temporal window. A restrictive published grant cannot be
362
- superseded by seller fallback. A trust 200 disables brand.json authority;
364
+ superseded by seller fallback. A grant's `grantee` must be a registrable domain
365
+ under the pinned PSL snapshot (`alice.github.io` is one; `github.io` and
366
+ `media.agency.com` are not). A grant whose `grantee` is not one covers no claim
367
+ and does not block seller fallback, but its scopes still count for
368
+ `exclusive_grants`. `createTrustRecord` and `adcp identity trust-validate` refuse
369
+ such grantees. A trust 200 disables brand.json authority;
363
370
  authoritative absence alone permits explicit legacy policy. An established
364
371
  identity lacking a grant gets `PERMISSION_DENIED` with
365
372
  `{ scope: 'agent', reason: 'grant_absent' }`. No account or live buy is changed.
@@ -402,18 +409,19 @@ released schemas:
402
409
 
403
410
  | PR | Pinned head | Surface |
404
411
  | --- | --- | --- |
405
- | [7894](https://github.com/adcontextprotocol/adcp/pull/7894) | `e59294701d733b0ea2a004a2f0c091c8eccdcaae` | WBA wire profile (`wba-profile.mdx`), profile selectors, directory and request vectors |
412
+ | [7894](https://github.com/adcontextprotocol/adcp/pull/7894) | `9f472d63900b99efcd9ed05b5d0bb75552c3b9d6` | WBA wire profile (`wba-profile.mdx`), profile selectors |
406
413
  | [8121](https://github.com/adcontextprotocol/adcp/pull/8121) | `f5973ac0267b1b94d714c55fc4e3ad8fc2511350` | Origin identity and key-free trust v1 |
407
414
  | [8162](https://github.com/adcontextprotocol/adcp/pull/8162) | `5c9914c5c382cc32f3d2ad7842942e548c414705` | Ratified identity, coexistence, revocation |
408
415
  | [8168](https://github.com/adcontextprotocol/adcp/pull/8168) | `45540941dfd61e80ab8a463f780cb147c82a32f0` | Relationship and principal response arms |
409
- | [8169](https://github.com/adcontextprotocol/adcp/pull/8169) | `3ce6a14d7afaa71fa78ddf2223ed0421e01205ae` | Grants, trust schema, grant_absent |
416
+ | [8169](https://github.com/adcontextprotocol/adcp/pull/8169) | `3ce6a14d7afaa71fa78ddf2223ed0421e01205ae` | Grants, trust schema, grant_absent; the registrable-domain `grantee` rule and its schema description from `eabe46048530c08a34e6eee6e4d15d7848e01c57` |
410
417
  | [8170](https://github.com/adcontextprotocol/adcp/pull/8170) | `8d3591e70e9a717c7fdfb513360a796fba24ca9a` | Onboarding additions only; its old trust key fields are excluded |
411
418
  | [8177](https://github.com/adcontextprotocol/adcp/pull/8177) | `b663f8e4235fe4276c73fb9bac6db491b2252bbf` | Reporting authentication omission |
419
+ | [8298](https://github.com/adcontextprotocol/adcp/pull/8298) | `f44785a5b65db93988f30ad3d23ba5849f1a1d5e` | WBA interop harness, directory and request vectors |
412
420
 
413
- The vectors in `test/fixtures/wba-profile/` are byte-identical to #7894 at that
414
- head (see `PINNED.json`). Every vendored request and directory vector is
415
- graded, and the interop harness (adcontextprotocol/adcp#8298) grades
416
- `scenarios.json`.
421
+ The vectors in `test/fixtures/wba-profile/` are byte-identical to #8298 at that
422
+ head (see `PINNED.json`), which carries the #7894 profile and vectors. Every
423
+ vendored request and directory vector is graded, and the interop harness
424
+ (adcontextprotocol/adcp#8298) grades `scenarios.json`.
417
425
 
418
426
  Verification runs in Cloudflare's `http-message-sig` (signature base, coverage,
419
427
  window, algorithm and cryptographic checks); the SDK adds the profile rules in
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adcp/sdk",
3
- "version": "16.0.0",
3
+ "version": "16.1.0",
4
4
  "description": "AdCP SDK — client, server, and compliance harnesses for the AdContext Protocol (MCP + A2A)",
5
5
  "workspaces": [
6
6
  ".",