@adcp/sdk 6.2.0 → 6.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 (65) hide show
  1. package/AGENTS.md +5 -0
  2. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +4 -4
  3. package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +4 -4
  4. package/dist/lib/adapters/legacy/v2-5/types.d.ts +1 -1
  5. package/dist/lib/adapters/legacy/v2-5/types.js +1 -1
  6. package/dist/lib/core/ConversationTypes.d.ts +3 -3
  7. package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
  8. package/dist/lib/core/TaskExecutor.d.ts +4 -4
  9. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  10. package/dist/lib/core/TaskExecutor.js +13 -13
  11. package/dist/lib/core/TaskExecutor.js.map +1 -1
  12. package/dist/lib/errors/index.d.ts +10 -8
  13. package/dist/lib/errors/index.d.ts.map +1 -1
  14. package/dist/lib/errors/index.js +10 -9
  15. package/dist/lib/errors/index.js.map +1 -1
  16. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  17. package/dist/lib/server/decisioning/account.d.ts +84 -16
  18. package/dist/lib/server/decisioning/account.d.ts.map +1 -1
  19. package/dist/lib/server/decisioning/account.js.map +1 -1
  20. package/dist/lib/server/decisioning/index.d.ts +2 -2
  21. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  22. package/dist/lib/server/decisioning/index.js +4 -1
  23. package/dist/lib/server/decisioning/index.js.map +1 -1
  24. package/dist/lib/server/decisioning/runtime/from-platform.js +65 -3
  25. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  26. package/dist/lib/server/decisioning/tenant-registry.d.ts +127 -3
  27. package/dist/lib/server/decisioning/tenant-registry.d.ts.map +1 -1
  28. package/dist/lib/server/decisioning/tenant-registry.js +223 -0
  29. package/dist/lib/server/decisioning/tenant-registry.js.map +1 -1
  30. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  31. package/dist/lib/testing/compliance/comply.js +46 -11
  32. package/dist/lib/testing/compliance/comply.js.map +1 -1
  33. package/dist/lib/testing/compliance/storyboard-tracks.js +22 -5
  34. package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -1
  35. package/dist/lib/testing/compliance/types.d.ts +21 -1
  36. package/dist/lib/testing/compliance/types.d.ts.map +1 -1
  37. package/dist/lib/testing/storyboard/assertions.d.ts +19 -1
  38. package/dist/lib/testing/storyboard/assertions.d.ts.map +1 -1
  39. package/dist/lib/testing/storyboard/assertions.js.map +1 -1
  40. package/dist/lib/testing/storyboard/default-invariants.js +17 -0
  41. package/dist/lib/testing/storyboard/default-invariants.js.map +1 -1
  42. package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
  43. package/dist/lib/testing/storyboard/loader.js +41 -0
  44. package/dist/lib/testing/storyboard/loader.js.map +1 -1
  45. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  46. package/dist/lib/testing/storyboard/runner.js +157 -21
  47. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  48. package/dist/lib/testing/storyboard/types.d.ts +69 -1
  49. package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
  50. package/dist/lib/testing/storyboard/types.js.map +1 -1
  51. package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
  52. package/dist/lib/testing/storyboard/validations.js +176 -0
  53. package/dist/lib/testing/storyboard/validations.js.map +1 -1
  54. package/dist/lib/utils/sync-creatives-adapter.d.ts +7 -7
  55. package/dist/lib/utils/sync-creatives-adapter.d.ts.map +1 -1
  56. package/dist/lib/utils/sync-creatives-adapter.js +28 -44
  57. package/dist/lib/utils/sync-creatives-adapter.js.map +1 -1
  58. package/dist/lib/version.d.ts +3 -3
  59. package/dist/lib/version.js +3 -3
  60. package/examples/decisioning-platform-broadcast-tv.ts +2 -8
  61. package/examples/decisioning-platform-mock-seller.ts +2 -4
  62. package/examples/decisioning-platform-multi-tenant.ts +26 -4
  63. package/examples/decisioning-platform-programmatic.ts +4 -17
  64. package/package.json +1 -1
  65. package/skills/build-decisioning-platform/SKILL.md +62 -44
@@ -24,8 +24,43 @@
24
24
  *
25
25
  * @public
26
26
  */
27
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ var desc = Object.getOwnPropertyDescriptor(m, k);
30
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
31
+ desc = { enumerable: true, get: function() { return m[k]; } };
32
+ }
33
+ Object.defineProperty(o, k2, desc);
34
+ }) : (function(o, m, k, k2) {
35
+ if (k2 === undefined) k2 = k;
36
+ o[k2] = m[k];
37
+ }));
38
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
39
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
40
+ }) : function(o, v) {
41
+ o["default"] = v;
42
+ });
43
+ var __importStar = (this && this.__importStar) || (function () {
44
+ var ownKeys = function(o) {
45
+ ownKeys = Object.getOwnPropertyNames || function (o) {
46
+ var ar = [];
47
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
48
+ return ar;
49
+ };
50
+ return ownKeys(o);
51
+ };
52
+ return function (mod) {
53
+ if (mod && mod.__esModule) return mod;
54
+ var result = {};
55
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
56
+ __setModuleDefault(result, mod);
57
+ return result;
58
+ };
59
+ })();
27
60
  Object.defineProperty(exports, "__esModule", { value: true });
28
61
  exports.createDefaultJwksValidator = createDefaultJwksValidator;
62
+ exports.createSelfSignedTenantKey = createSelfSignedTenantKey;
63
+ exports.createNoopJwksValidator = createNoopJwksValidator;
29
64
  exports.createTenantRegistry = createTenantRegistry;
30
65
  const from_platform_1 = require("./runtime/from-platform");
31
66
  // ---------------------------------------------------------------------------
@@ -139,6 +174,156 @@ function isMatchingKey(jwk, expected, expectedKid) {
139
174
  }
140
175
  return false;
141
176
  }
177
+ // ---------------------------------------------------------------------------
178
+ // Self-signed key + no-op validator helpers (3.x adoption ergonomics)
179
+ // ---------------------------------------------------------------------------
180
+ /**
181
+ * Generate an Ed25519 keypair suitable for `TenantConfig.signingKey`.
182
+ *
183
+ * Convenience for adopters spiking the SDK before standing up KMS or
184
+ * publishing brand.json. AdCP 3.x treats request signing as optional, so
185
+ * `TenantConfig.signingKey` is itself optional — but adopters who DO
186
+ * want to exercise the signing path (storyboards, signed-requests
187
+ * grader, end-to-end tests) need a working key without the operational
188
+ * lift of a real KMS.
189
+ *
190
+ * Pair with `createNoopJwksValidator()` to skip the brand.json
191
+ * roundtrip in dev/test, OR publish the returned `publicJwk` at
192
+ * `{agentUrl}/.well-known/brand.json` (under `jwks.keys[]`) and use the
193
+ * default validator unchanged.
194
+ *
195
+ * **Production**: don't generate signing material in-process. Adopt a
196
+ * KMS-backed loader (HashiCorp Vault, AWS KMS, GCP Secret Manager) — a
197
+ * process compromise leaks an in-memory privateJwk and the only remedy
198
+ * is rotation across every counterparty cache.
199
+ *
200
+ * @param opts.keyId Optional `kid` for the key. Defaults to a
201
+ * timestamped value (`self-signed-{ISO date}`). Stable across restarts
202
+ * only if you pass a stable `keyId`.
203
+ */
204
+ async function createSelfSignedTenantKey(opts) {
205
+ // Lazy import — `jose` is a runtime dep, but the import-cost is real
206
+ // and most adopters never call this. Keep the registry's hot path
207
+ // (register / resolve) free of jose.
208
+ const { generateKeyPair, exportJWK } = await Promise.resolve().then(() => __importStar(require('jose')));
209
+ const { publicKey, privateKey } = await generateKeyPair('EdDSA', { crv: 'Ed25519', extractable: true });
210
+ const rawPublic = (await exportJWK(publicKey));
211
+ const rawPrivate = (await exportJWK(privateKey));
212
+ const keyId = opts?.keyId ?? `self-signed-${new Date().toISOString().slice(0, 10)}`;
213
+ // Tag both halves with `adcp_use: "webhook-signing"`. The registry's
214
+ // auto-wire path requires this tag (assertWebhookSigningUse below);
215
+ // setting it on the helper output means adopters get a working
216
+ // signing posture out of the box.
217
+ const publicJwk = { ...rawPublic, adcp_use: 'webhook-signing' };
218
+ const privateJwk = { ...rawPrivate, adcp_use: 'webhook-signing' };
219
+ return { keyId, publicJwk, privateJwk };
220
+ }
221
+ /**
222
+ * No-op JWKS validator that always returns `{ ok: true }`. Use ONLY in
223
+ * dev/test when you've set `signingKey` (e.g., via
224
+ * `createSelfSignedTenantKey()`) but haven't published brand.json yet —
225
+ * this skips the JWKS roundtrip so tenants reach `healthy` without a
226
+ * real `/.well-known/brand.json` endpoint.
227
+ *
228
+ * **Refuses to construct outside `NODE_ENV` ∈ {`'test'`, `'development'`}**
229
+ * unless the operator sets `ADCP_NOOP_JWKS_ACK=1` to explicitly
230
+ * acknowledge the risk. Mirrors the `idempotency: 'disabled'` allowlist
231
+ * pattern — `NODE_ENV` defaults to unset in raw Lambda / custom
232
+ * containers / many K8s deployments, so a `=== 'production'` check
233
+ * would no-op in exactly the environments where a silent skip-validation
234
+ * start is most dangerous.
235
+ *
236
+ * The ack value MUST be the literal string `'1'`. Truthy lookalikes
237
+ * (`'true'`, `'yes'`) intentionally don't satisfy the gate to prevent
238
+ * copy-paste typos.
239
+ *
240
+ * In production, leave the registry's default validator wired and
241
+ * publish brand.json. Or omit `signingKey` entirely (`TenantConfig`
242
+ * makes it optional in 3.x), which skips JWKS validation without
243
+ * needing this helper.
244
+ */
245
+ function createNoopJwksValidator() {
246
+ const env = process.env.NODE_ENV;
247
+ const acknowledged = process.env.ADCP_NOOP_JWKS_ACK === '1';
248
+ const isAllowlistedDevEnv = env === 'test' || env === 'development';
249
+ if (!isAllowlistedDevEnv && !acknowledged) {
250
+ throw new Error('createNoopJwksValidator: refuses to construct with NODE_ENV=' +
251
+ (env === undefined ? '<unset>' : JSON.stringify(env)) +
252
+ '. The no-op validator skips JWKS verification, so a tenant whose published brand.json does not actually ' +
253
+ 'contain the configured signingKey would reach `healthy` and serve unverifiable signed responses. ' +
254
+ 'The SDK only allows it under NODE_ENV=test or NODE_ENV=development by default. Either: ' +
255
+ '(a) use the default validator (createDefaultJwksValidator) and publish a real brand.json, ' +
256
+ '(b) omit signingKey from TenantConfig — JWKS validation is skipped entirely for unsigned tenants in 3.x, ' +
257
+ '(c) set NODE_ENV=test or NODE_ENV=development if this is a dev-only environment, or ' +
258
+ '(d) set ADCP_NOOP_JWKS_ACK=1 to explicitly acknowledge the risk for non-standard environments.');
259
+ }
260
+ // eslint-disable-next-line no-console
261
+ console.warn('[adcp] createNoopJwksValidator: JWKS validation is DISABLED for this registry. ' +
262
+ 'Tenants will reach `healthy` without a brand.json roundtrip. Use only in dev/test.');
263
+ return {
264
+ async validate() {
265
+ return { ok: true };
266
+ },
267
+ };
268
+ }
269
+ // ---------------------------------------------------------------------------
270
+ // Webhook auto-wire — convert TenantSigningKey to a SignerKey the framework's
271
+ // webhook emitter understands. Strict on `adcp_use` per AdCP key-purpose
272
+ // discriminator (adcp#2423).
273
+ // ---------------------------------------------------------------------------
274
+ /**
275
+ * Derive the RFC 9421 signing algorithm from JWK shape. AdCP webhook
276
+ * signing supports Ed25519 (kty=OKP, crv=Ed25519) and ECDSA P-256
277
+ * (kty=EC, crv=P-256). Anything else throws — RSA / EC P-384 / etc.
278
+ * are not in the AdCP signing-algorithm set.
279
+ */
280
+ function deriveSigningAlg(jwk) {
281
+ if (jwk.kty === 'OKP' && jwk.crv === 'Ed25519')
282
+ return 'ed25519';
283
+ if (jwk.kty === 'EC' && jwk.crv === 'P-256')
284
+ return 'ecdsa-p256-sha256';
285
+ throw new Error(`TenantConfig.signingKey: unsupported JWK shape kty=${JSON.stringify(jwk.kty)} crv=${JSON.stringify(jwk.crv)}. ` +
286
+ 'AdCP RFC 9421 webhook signing requires Ed25519 (kty=OKP, crv=Ed25519) or ECDSA P-256 (kty=EC, crv=P-256). ' +
287
+ 'See `docs/guides/SIGNING-GUIDE.md` for key-generation recipes.');
288
+ }
289
+ /**
290
+ * Enforce AdCP key-purpose discriminator: a key wired into webhook
291
+ * signing MUST carry `adcp_use: "webhook-signing"`. Throws with a
292
+ * remediation-pointing error otherwise. Called only when auto-wiring
293
+ * fires (signingKey set + serverOptions.webhooks.signerKey unset);
294
+ * adopters who want different keys per purpose wire them explicitly
295
+ * and bypass this check.
296
+ */
297
+ function assertWebhookSigningUse(key) {
298
+ const publicUse = key.publicJwk.adcp_use;
299
+ const privateUse = key.privateJwk.adcp_use;
300
+ if (publicUse !== 'webhook-signing') {
301
+ throw new Error(`TenantConfig.signingKey: publicJwk.adcp_use must be 'webhook-signing' for the registry's webhook auto-wire path. ` +
302
+ `Got ${publicUse === undefined ? '<unset>' : JSON.stringify(publicUse)}. ` +
303
+ 'Per AdCP, request-signing and webhook-signing keys MUST be distinct (key-purpose discriminator, adcp#2423). ' +
304
+ 'Either: (a) tag this key with `adcp_use: "webhook-signing"` if it IS the webhook-signing key, ' +
305
+ '(b) mint a separate webhook-signing key and put the request-signing key on serverOptions.signedRequests instead, or ' +
306
+ '(c) wire `serverOptions.webhooks.signerKey` explicitly — the explicit config bypasses auto-wiring.');
307
+ }
308
+ if (privateUse !== 'webhook-signing') {
309
+ throw new Error(`TenantConfig.signingKey: privateJwk.adcp_use must be 'webhook-signing' (same purpose as publicJwk). ` +
310
+ `Got ${privateUse === undefined ? '<unset>' : JSON.stringify(privateUse)}.`);
311
+ }
312
+ }
313
+ /**
314
+ * Convert `TenantSigningKey` to the framework-internal `SignerKey`
315
+ * shape consumed by the webhook emitter. Field-name shift: the
316
+ * `TenantSigningKey` surface uses `keyId` (camelCase, adopter-facing);
317
+ * `SignerKey` uses `keyid` (lowercase, RFC 9421 wire term).
318
+ */
319
+ function tenantKeyToSignerKey(key) {
320
+ const alg = deriveSigningAlg(key.publicJwk);
321
+ return {
322
+ keyid: key.keyId,
323
+ alg,
324
+ privateKey: key.privateJwk,
325
+ };
326
+ }
142
327
  /**
143
328
  * Resolve the canonical agent URL + the full URL list from a TenantConfig.
144
329
  *
@@ -248,6 +433,27 @@ function createTenantRegistry(opts) {
248
433
  ...opts.defaultServerOptions,
249
434
  ...config.serverOptions,
250
435
  };
436
+ // Auto-wire `signingKey` into webhook emission. Adopters set the key
437
+ // once on TenantConfig and outbound webhook deliveries are RFC
438
+ // 9421-signed by default. Skip when:
439
+ // - signingKey is omitted (3.x unsigned path), or
440
+ // - the adopter has already wired their own webhook signer on
441
+ // serverOptions.webhooks (explicit config wins — adopters with
442
+ // KMS-backed signing or distinct webhook keys per tenant pass
443
+ // through unaffected).
444
+ // Strict on `adcp_use`: the JWK MUST carry `adcp_use:
445
+ // "webhook-signing"` per AdCP key-purpose discriminator (adcp#2423).
446
+ // Throws at register() time with a remediation-pointing error rather
447
+ // than silently no-op'ing the auto-wire.
448
+ if (config.signingKey &&
449
+ merged.webhooks?.signerKey === undefined &&
450
+ merged.webhooks?.signerProvider === undefined) {
451
+ assertWebhookSigningUse(config.signingKey);
452
+ merged.webhooks = {
453
+ ...(merged.webhooks ?? {}),
454
+ signerKey: tenantKeyToSignerKey(config.signingKey),
455
+ };
456
+ }
251
457
  return (0, from_platform_1.createAdcpServerFromPlatform)(config.platform, merged);
252
458
  }
253
459
  async function runValidation(tenantId) {
@@ -256,6 +462,23 @@ function createTenantRegistry(opts) {
256
462
  throw new Error(`runValidation: tenant '${tenantId}' not registered`);
257
463
  }
258
464
  const [canonicalUrl, allUrls] = resolveTenantUrls(entry.config);
465
+ // Unsigned tenant — adopter chose to ship without signing in 3.x.
466
+ // Skip JWKS validation entirely; tenant goes straight to healthy.
467
+ // `buildServer` short-circuits the webhook auto-wire on the same
468
+ // condition (signingKey is undefined), so the tenant emits unsigned
469
+ // webhooks too — consistent posture across JWKS and signing.
470
+ if (!entry.config.signingKey) {
471
+ const status = {
472
+ tenantId,
473
+ agentUrl: canonicalUrl,
474
+ agentUrls: allUrls,
475
+ health: 'healthy',
476
+ reason: 'unsigned (no signingKey)',
477
+ lastCheckedAt: new Date().toISOString(),
478
+ };
479
+ entry.status = status;
480
+ return status;
481
+ }
259
482
  // Multi-URL tenants validate every URL independently. Aliases share the
260
483
  // signing key; if an alias publishes a brand.json that doesn't include
261
484
  // the key (DNS hijack, operator misconfig, stale mirror), traffic to
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-registry.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/tenant-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenant-registry.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/tenant-registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"comply.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/compliance/comply.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,UAAU,CAAC;AAUtE,OAAO,kCAAkC,CAAC;AAO1C,OAAO,KAAK,EAAgC,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EACV,eAAe,EAGf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACd,MAAM,SAAS,CAAC;AAuWjB,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAC5D;;;OAGG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwBrG;AA6iBD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC,CAmFnE;AAqHD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAM9E;AAwDD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CA+GxE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE5E"}
1
+ {"version":3,"file":"comply.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/compliance/comply.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,UAAU,CAAC;AAUtE,OAAO,kCAAkC,CAAC;AAO1C,OAAO,KAAK,EAAgC,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EACV,eAAe,EAGf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACd,MAAM,SAAS,CAAC;AAuWjB,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAC5D;;;OAGG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwBrG;AA+iBD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC,CAmFnE;AAwHD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAe9E;AA2DD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAoIxE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE5E"}
@@ -855,7 +855,7 @@ async function complyImpl(agentUrl, options) {
855
855
  }
856
856
  }
857
857
  const summary = buildSummary(trackResults, storyboardResults);
858
- const testedTracks = trackResults.filter(t => t.status === 'pass' || t.status === 'fail' || t.status === 'partial');
858
+ const testedTracks = trackResults.filter(t => t.status === 'pass' || t.status === 'fail' || t.status === 'partial' || t.status === 'silent');
859
859
  const skippedTracks = trackResults
860
860
  .filter(t => t.status === 'skip')
861
861
  .map(t => ({
@@ -1033,7 +1033,7 @@ async function runWithDegradedProfile(agentUrl, profile, storyboards, options, e
1033
1033
  agent_profile: profile,
1034
1034
  overall_status: overallStatus,
1035
1035
  tracks: trackResults,
1036
- tested_tracks: trackResults.filter(t => t.status === 'pass' || t.status === 'fail' || t.status === 'partial'),
1036
+ tested_tracks: trackResults.filter(t => t.status === 'pass' || t.status === 'fail' || t.status === 'partial' || t.status === 'silent'),
1037
1037
  skipped_tracks: [],
1038
1038
  summary,
1039
1039
  observations: allObservations,
@@ -1067,6 +1067,7 @@ async function buildUnreachableResult(agentUrl, profile, errorMsg, start, _effec
1067
1067
  tracks_failed: 0,
1068
1068
  tracks_skipped: 0,
1069
1069
  tracks_partial: 0,
1070
+ tracks_silent: 0,
1070
1071
  headline,
1071
1072
  },
1072
1073
  observations,
@@ -1080,12 +1081,21 @@ async function buildUnreachableResult(agentUrl, profile, errorMsg, start, _effec
1080
1081
  * auth_required and unreachable are set directly in the early-exit path.
1081
1082
  */
1082
1083
  function computeOverallStatus(summary) {
1083
- const attempted = summary.tracks_passed + summary.tracks_failed + summary.tracks_partial;
1084
+ // Silent tracks count as `attempted` (they ran) but never as
1085
+ // unambiguously `passing` — surfacing them as `partial` matches the
1086
+ // grader's "wired-but-not-exercised" framing in adcontextprotocol/adcp#2834.
1087
+ // Tolerate `tracks_silent === undefined` so summaries serialized
1088
+ // before 6.2 (e.g. cached registry rows) still grade correctly.
1089
+ const silent = summary.tracks_silent ?? 0;
1090
+ const attempted = summary.tracks_passed + summary.tracks_failed + summary.tracks_partial + silent;
1084
1091
  if (attempted === 0)
1085
1092
  return 'partial';
1086
- if (summary.tracks_failed === 0 && summary.tracks_partial === 0)
1093
+ if (summary.tracks_failed === 0 && summary.tracks_partial === 0 && silent === 0)
1087
1094
  return 'passing';
1088
- if (summary.tracks_passed === 0 && summary.tracks_partial === 0)
1095
+ // 'failing' requires that nothing softer than a hard fail was reported —
1096
+ // a run with silent tracks alongside fails is mixed (partial), not
1097
+ // categorically failing.
1098
+ if (summary.tracks_passed === 0 && summary.tracks_partial === 0 && silent === 0)
1089
1099
  return 'failing';
1090
1100
  return 'partial';
1091
1101
  }
@@ -1094,15 +1104,16 @@ function buildSummary(tracks, storyboardResults = []) {
1094
1104
  const failed = tracks.filter(t => t.status === 'fail').length;
1095
1105
  const skipped = tracks.filter(t => t.status === 'skip').length;
1096
1106
  const partial = tracks.filter(t => t.status === 'partial').length;
1097
- const attempted = passed + failed + partial;
1107
+ const silent = tracks.filter(t => t.status === 'silent').length;
1108
+ const attempted = passed + failed + partial + silent;
1098
1109
  let headline;
1099
1110
  if (attempted === 0) {
1100
1111
  headline = 'No applicable tracks found for this agent';
1101
1112
  }
1102
- else if (failed === 0 && partial === 0) {
1113
+ else if (failed === 0 && partial === 0 && silent === 0) {
1103
1114
  headline = `All ${passed} track(s) pass`;
1104
1115
  }
1105
- else if (passed === 0 && partial === 0) {
1116
+ else if (passed === 0 && partial === 0 && silent === 0) {
1106
1117
  headline = `All ${failed} attempted track(s) failing`;
1107
1118
  }
1108
1119
  else {
@@ -1111,6 +1122,8 @@ function buildSummary(tracks, storyboardResults = []) {
1111
1122
  parts.push(`${passed} passing`);
1112
1123
  if (partial > 0)
1113
1124
  parts.push(`${partial} partial`);
1125
+ if (silent > 0)
1126
+ parts.push(`${silent} silent`);
1114
1127
  if (failed > 0)
1115
1128
  parts.push(`${failed} failing`);
1116
1129
  headline = parts.join(', ');
@@ -1137,6 +1150,7 @@ function buildSummary(tracks, storyboardResults = []) {
1137
1150
  tracks_failed: failed,
1138
1151
  tracks_skipped: skipped,
1139
1152
  tracks_partial: partial,
1153
+ tracks_silent: silent,
1140
1154
  headline,
1141
1155
  total_steps: totalSteps,
1142
1156
  steps_passed: stepsPassed,
@@ -1150,8 +1164,17 @@ function buildSummary(tracks, storyboardResults = []) {
1150
1164
  */
1151
1165
  function formatComplianceResults(result) {
1152
1166
  let output = '';
1153
- // Header
1154
- const overallIcon = result.summary.tracks_failed === 0 && result.summary.tracks_partial === 0 ? '✅' : '';
1167
+ // Header. Silent tracks share the partial icon — neither is a clean
1168
+ // green check, but neither is a hard failure. Pulling silent into
1169
+ // would over-penalize a wired-but-not-exercised agent the same as a
1170
+ // failing one. `?? 0` matches the runtime tolerance in
1171
+ // computeOverallStatus so older serialized summaries still render.
1172
+ const silentCount = result.summary.tracks_silent ?? 0;
1173
+ const overallIcon = result.summary.tracks_failed === 0 && result.summary.tracks_partial === 0 && silentCount === 0
1174
+ ? '✅'
1175
+ : result.summary.tracks_failed > 0
1176
+ ? '❌'
1177
+ : '⚠️';
1155
1178
  output += `\n${overallIcon} AdCP Compliance Report\n`;
1156
1179
  output += `${'─'.repeat(50)}\n`;
1157
1180
  output += `Agent: ${result.agent_url}\n`;
@@ -1169,12 +1192,24 @@ function formatComplianceResults(result) {
1169
1192
  output += `Capability Tracks\n`;
1170
1193
  output += `${'─'.repeat(50)}\n`;
1171
1194
  for (const track of result.tracks) {
1172
- const icon = track.status === 'pass' ? '✅' : track.status === 'fail' ? '❌' : track.status === 'partial' ? '⚠️' : '⏭️';
1195
+ const icon = track.status === 'pass'
1196
+ ? '✅'
1197
+ : track.status === 'fail'
1198
+ ? '❌'
1199
+ : track.status === 'partial'
1200
+ ? '⚠️'
1201
+ : track.status === 'silent'
1202
+ ? '🔇'
1203
+ : '⏭️';
1173
1204
  const scenarioCount = track.scenarios.length;
1174
1205
  const passedCount = track.scenarios.filter(s => s.overall_passed).length;
1175
1206
  if (track.status === 'skip') {
1176
1207
  output += `${icon} ${track.label} (not applicable)\n`;
1177
1208
  }
1209
+ else if (track.status === 'silent') {
1210
+ output += `${icon} ${track.label} ${passedCount}/${scenarioCount} scenarios pass (no lifecycle observed)`;
1211
+ output += ` (${(track.duration_ms / 1000).toFixed(1)}s)\n`;
1212
+ }
1178
1213
  else {
1179
1214
  output += `${icon} ${track.label} ${passedCount}/${scenarioCount} scenarios pass`;
1180
1215
  output += ` (${(track.duration_ms / 1000).toFixed(1)}s)\n`;