@adcp/client 4.13.0 → 4.14.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 (44) hide show
  1. package/bin/adcp.js +23 -23
  2. package/dist/lib/testing/agent-tester.d.ts +1 -1
  3. package/dist/lib/testing/agent-tester.d.ts.map +1 -1
  4. package/dist/lib/testing/agent-tester.js +22 -1
  5. package/dist/lib/testing/agent-tester.js.map +1 -1
  6. package/dist/lib/testing/client.d.ts +6 -0
  7. package/dist/lib/testing/client.d.ts.map +1 -1
  8. package/dist/lib/testing/client.js +42 -3
  9. package/dist/lib/testing/client.js.map +1 -1
  10. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  11. package/dist/lib/testing/compliance/comply.js +49 -2
  12. package/dist/lib/testing/compliance/comply.js.map +1 -1
  13. package/dist/lib/testing/index.d.ts +1 -1
  14. package/dist/lib/testing/index.d.ts.map +1 -1
  15. package/dist/lib/testing/index.js +6 -2
  16. package/dist/lib/testing/index.js.map +1 -1
  17. package/dist/lib/testing/orchestrator.d.ts.map +1 -1
  18. package/dist/lib/testing/orchestrator.js +7 -0
  19. package/dist/lib/testing/orchestrator.js.map +1 -1
  20. package/dist/lib/testing/scenarios/index.d.ts +1 -1
  21. package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
  22. package/dist/lib/testing/scenarios/index.js +4 -1
  23. package/dist/lib/testing/scenarios/index.js.map +1 -1
  24. package/dist/lib/testing/scenarios/media-buy.d.ts +24 -0
  25. package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
  26. package/dist/lib/testing/scenarios/media-buy.js +318 -0
  27. package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
  28. package/dist/lib/testing/scenarios/schema-compliance.d.ts.map +1 -1
  29. package/dist/lib/testing/scenarios/schema-compliance.js +3 -0
  30. package/dist/lib/testing/scenarios/schema-compliance.js.map +1 -1
  31. package/dist/lib/testing/scenarios/signals.d.ts.map +1 -1
  32. package/dist/lib/testing/scenarios/signals.js +4 -1
  33. package/dist/lib/testing/scenarios/signals.js.map +1 -1
  34. package/dist/lib/testing/types.d.ts +1 -1
  35. package/dist/lib/testing/types.d.ts.map +1 -1
  36. package/dist/lib/utils/response-schemas.d.ts +9 -0
  37. package/dist/lib/utils/response-schemas.d.ts.map +1 -0
  38. package/dist/lib/utils/response-schemas.js +59 -0
  39. package/dist/lib/utils/response-schemas.js.map +1 -0
  40. package/dist/lib/utils/response-unwrapper.d.ts +2 -2
  41. package/dist/lib/utils/response-unwrapper.d.ts.map +1 -1
  42. package/dist/lib/utils/response-unwrapper.js +3 -91
  43. package/dist/lib/utils/response-unwrapper.js.map +1 -1
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/lib/testing/orchestrator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAmIH,wDAGC;AAcD,4CA2DC;AAKD,gDA2CC;AAKD,wDAEC;AApQD,iDAA2C;AAC3C,qCAAkE;AAGlE;;;;;GAKG;AACU,QAAA,qBAAqB,GAA4C;IAC5E,oBAAoB;IACpB,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,oBAAoB,EAAE,EAAE;IAExB,gCAAgC;IAChC,gBAAgB,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC;IACtD,eAAe,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC;IACrD,eAAe,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC;IACrD,kBAAkB,EAAE,CAAC,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAC5F,mBAAmB,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC;IACzD,aAAa,EAAE,CAAC,gBAAgB,CAAC;IAEjC,wBAAwB;IACxB,kBAAkB,EAAE,CAAC,cAAc,CAAC;IACpC,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,UAAU,EAAE,CAAC,cAAc,CAAC;IAC5B,iBAAiB,EAAE,CAAC,cAAc,CAAC;IACnC,oBAAoB,EAAE,CAAC,cAAc,CAAC;IAEtC,gCAAgC;IAChC,aAAa,EAAE,CAAC,gBAAgB,CAAC;IACjC,kBAAkB,EAAE,CAAC,uBAAuB,CAAC;IAE7C,yBAAyB;IACzB,YAAY,EAAE,CAAC,aAAa,CAAC;IAE7B,4BAA4B;IAC5B,yBAAyB,EAAE,CAAC,sBAAsB,CAAC;IACnD,4BAA4B,EAAE,CAAC,wBAAwB,CAAC;IACxD,qBAAqB,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;IAEpE,qCAAqC;IACrC,mBAAmB,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;IACvD,0BAA0B,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC9D,8BAA8B,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAClE,4BAA4B,EAAE,CAAC,kBAAkB,CAAC;IAElD,oBAAoB;IACpB,oBAAoB,EAAE,CAAC,qBAAqB,CAAC;IAC7C,eAAe,EAAE,CAAC,iBAAiB,CAAC;IACpC,UAAU,EAAE,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;IAE3D,qCAAqC;IACrC,cAAc,EAAE,CAAC,gBAAgB,CAAC;IAElC,iDAAiD;IACjD,iBAAiB,EAAE,CAAC,cAAc,CAAC;IAEnC,iEAAiE;IACjE,WAAW,EAAE,CAAC,kBAAkB,CAAC;IACjC,eAAe,EAAE,CAAC,kBAAkB,CAAC;IACrC,eAAe,EAAE,CAAC,kBAAkB,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACU,QAAA,iBAAiB,GAA4B;IACxD,cAAc;IACd,WAAW;IACX,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,YAAY;IACZ,qBAAqB;IACrB,mBAAmB;IACnB,sBAAsB;IACtB,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,2BAA2B;IAC3B,8BAA8B;IAC9B,uBAAuB;IACvB,qBAAqB;IACrB,4BAA4B;IAC5B,gCAAgC;IAChC,8BAA8B;IAC9B,sBAAsB;IACtB,iBAAiB;IACjB,YAAY;IACZ,mBAAmB;IACnB,gBAAgB;IAChB,aAAa;IACb,iBAAiB;IACjB,iBAAiB;CACT,CAAC;AAWX,SAAS,YAAY,CAAC,QAAsB,EAAE,KAAe;IAC3D,IAAI,CAAC,CAAC,QAAQ,IAAI,6BAAqB,CAAC;QAAE,OAAO,KAAK,CAAC;IACvD,MAAM,YAAY,GAAG,6BAAqB,CAAC,QAAQ,CAAE,CAAC;IACtD,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,KAAe,EAAE,MAAgC;IACtF,MAAM,UAAU,GAAG,MAAM,IAAI,yBAAiB,CAAC;IAC/C,OAAQ,UAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,UAA+B,EAAE;IACxF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAE9D,MAAM,gBAAgB,GAAgB;QACpC,GAAG,WAAW;QACd,OAAO,EAAE,WAAW,CAAC,OAAO,KAAK,KAAK;QACtC,eAAe,EAAE,WAAW,CAAC,eAAe,IAAI,eAAe,IAAI,CAAC,GAAG,EAAE,EAAE;KAC5E,CAAC;IAEF,iEAAiE;IACjE,8EAA8E;IAC9E,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAA,yBAAgB,EAAC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAChG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAAC;IAE1E,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,EAAE;YACjB,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YACrC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,gBAAgB,CAAC,OAAO,KAAK,KAAK;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACzE,MAAM,UAAU,GAA4B,cAAc,IAAI,yBAAiB,CAAC;IAChF,MAAM,OAAO,GAAI,UAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpF,4CAA4C;IAC5C,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;IAElE,OAAO;QACL,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,OAAO;QACtB,aAAa,EAAE,UAAU;QACzB,iBAAiB,EAAE,OAAO;QAC1B,OAAO;QACP,cAAc,EAAE,WAAW,KAAK,CAAC,IAAI,WAAW,GAAG,CAAC;QACpD,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,WAAW;QACzB,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QACrC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,gBAAgB,CAAC,OAAO,KAAK,KAAK;KAC5C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAAkB;IACnD,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACrD,IAAI,MAAM,GAAG,MAAM,WAAW,+BAA+B,CAAC;IAC9D,MAAM,IAAI,cAAc,KAAK,CAAC,SAAS,IAAI,CAAC;IAC5C,MAAM,IAAI,mBAAmB,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAC1D,MAAM,IAAI,iBAAiB,KAAK,CAAC,iBAAiB,MAAM,CAAC;IACzD,MAAM,IAAI,aAAa,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC;IACpE,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,+DAA+D,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,eAAe,KAAK,CAAC,YAAY,YAAY,KAAK,CAAC,YAAY,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,kBAAkB,CAAC;IAC1I,CAAC;IAED,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,0DAA0D,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/G,CAAC;IAED,MAAM,IAAI,0BAA0B,CAAC;IACrC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,MAAM,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,iBAAiB,OAAO,CAAC;QAEjG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC;gBAClC,CAAC;gBACD,MAAM,IAAI,MAAM,IAAI,CAAC,WAAW,MAAM,CAAC;gBACvC,IAAI,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC;gBACtD,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,mBAAmB,IAAI,CAAC,KAAK,IAAI,CAAC;gBAC5D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,MAAM;wBACJ,+DAA+D;4BAC/D,IAAI,CAAC,gBAAgB;4BACrB,yBAAyB,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,KAAkB;IACvD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/lib/testing/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  export { testHealthCheck } from './health';
7
7
  export { testDiscovery } from './discovery';
8
- export { testCreateMediaBuy, testFullSalesFlow, testCreativeSync, testCreativeInline, testCreativeReference, testSyncAudiences, resolveAccountForAudiences, selectProduct, selectPricingOption, buildCreateMediaBuyRequest, } from './media-buy';
8
+ export { testCreateMediaBuy, testFullSalesFlow, testCreativeSync, testCreativeInline, testCreativeReference, testSyncAudiences, resolveAccountForAudiences, selectProduct, selectPricingOption, buildCreateMediaBuyRequest, testMediaBuyLifecycle, testTerminalStateEnforcement, testPackageLifecycle, } from './media-buy';
9
9
  export { testCreativeFlow, testCreativeLifecycle } from './creative';
10
10
  export { testSignalsFlow } from './signals';
11
11
  export { testErrorHandling, testValidation, testPricingEdgeCases, testTemporalValidation, testBehaviorAnalysis, testResponseConsistency, } from './edge-cases';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,EAChC,8BAA8B,EAC9B,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGjH,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,EAChC,8BAA8B,EAC9B,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGjH,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Re-exports all test scenarios for easy importing.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.testErrorTransport = exports.testErrorStructure = exports.testErrorCodes = exports.testSchemaCompliance = exports.likelySupportsV3 = exports.testCapabilityDiscovery = exports.hasSITools = exports.testSIHandoff = exports.testSIAvailability = exports.testSISessionLifecycle = exports.hasCampaignGovernanceTools = exports.hasGovernanceTools = exports.testCampaignGovernanceDelivery = exports.testCampaignGovernanceConditions = exports.testCampaignGovernanceDenied = exports.testCampaignGovernance = exports.testPropertyListFilters = exports.testGovernanceContentStandards = exports.testGovernancePropertyLists = exports.testResponseConsistency = exports.testBehaviorAnalysis = exports.testTemporalValidation = exports.testPricingEdgeCases = exports.testValidation = exports.testErrorHandling = exports.testSignalsFlow = exports.testCreativeLifecycle = exports.testCreativeFlow = exports.buildCreateMediaBuyRequest = exports.selectPricingOption = exports.selectProduct = exports.resolveAccountForAudiences = exports.testSyncAudiences = exports.testCreativeReference = exports.testCreativeInline = exports.testCreativeSync = exports.testFullSalesFlow = exports.testCreateMediaBuy = exports.testDiscovery = exports.testHealthCheck = void 0;
8
+ exports.testErrorTransport = exports.testErrorStructure = exports.testErrorCodes = exports.testSchemaCompliance = exports.likelySupportsV3 = exports.testCapabilityDiscovery = exports.hasSITools = exports.testSIHandoff = exports.testSIAvailability = exports.testSISessionLifecycle = exports.hasCampaignGovernanceTools = exports.hasGovernanceTools = exports.testCampaignGovernanceDelivery = exports.testCampaignGovernanceConditions = exports.testCampaignGovernanceDenied = exports.testCampaignGovernance = exports.testPropertyListFilters = exports.testGovernanceContentStandards = exports.testGovernancePropertyLists = exports.testResponseConsistency = exports.testBehaviorAnalysis = exports.testTemporalValidation = exports.testPricingEdgeCases = exports.testValidation = exports.testErrorHandling = exports.testSignalsFlow = exports.testCreativeLifecycle = exports.testCreativeFlow = exports.testPackageLifecycle = exports.testTerminalStateEnforcement = exports.testMediaBuyLifecycle = exports.buildCreateMediaBuyRequest = exports.selectPricingOption = exports.selectProduct = exports.resolveAccountForAudiences = exports.testSyncAudiences = exports.testCreativeReference = exports.testCreativeInline = exports.testCreativeSync = exports.testFullSalesFlow = exports.testCreateMediaBuy = exports.testDiscovery = exports.testHealthCheck = void 0;
9
9
  // Health check
10
10
  var health_1 = require("./health");
11
11
  Object.defineProperty(exports, "testHealthCheck", { enumerable: true, get: function () { return health_1.testHealthCheck; } });
@@ -24,6 +24,9 @@ Object.defineProperty(exports, "resolveAccountForAudiences", { enumerable: true,
24
24
  Object.defineProperty(exports, "selectProduct", { enumerable: true, get: function () { return media_buy_1.selectProduct; } });
25
25
  Object.defineProperty(exports, "selectPricingOption", { enumerable: true, get: function () { return media_buy_1.selectPricingOption; } });
26
26
  Object.defineProperty(exports, "buildCreateMediaBuyRequest", { enumerable: true, get: function () { return media_buy_1.buildCreateMediaBuyRequest; } });
27
+ Object.defineProperty(exports, "testMediaBuyLifecycle", { enumerable: true, get: function () { return media_buy_1.testMediaBuyLifecycle; } });
28
+ Object.defineProperty(exports, "testTerminalStateEnforcement", { enumerable: true, get: function () { return media_buy_1.testTerminalStateEnforcement; } });
29
+ Object.defineProperty(exports, "testPackageLifecycle", { enumerable: true, get: function () { return media_buy_1.testPackageLifecycle; } });
27
30
  // Creative agent testing
28
31
  var creative_1 = require("./creative");
29
32
  Object.defineProperty(exports, "testCreativeFlow", { enumerable: true, get: function () { return creative_1.testCreativeFlow; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,eAAe;AACf,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAExB,YAAY;AACZ,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAEtB,yBAAyB;AACzB,yCAWqB;AAVnB,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA;AAChB,+GAAA,kBAAkB,OAAA;AAClB,kHAAA,qBAAqB,OAAA;AACrB,8GAAA,iBAAiB,OAAA;AACjB,uHAAA,0BAA0B,OAAA;AAC1B,0GAAA,aAAa,OAAA;AACb,gHAAA,mBAAmB,OAAA;AACnB,uHAAA,0BAA0B,OAAA;AAG5B,yBAAyB;AACzB,uCAAqE;AAA5D,4GAAA,gBAAgB,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAEhD,wBAAwB;AACxB,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AAExB,oBAAoB;AACpB,2CAOsB;AANpB,+GAAA,iBAAiB,OAAA;AACjB,4GAAA,cAAc,OAAA;AACd,kHAAA,oBAAoB,OAAA;AACpB,oHAAA,sBAAsB,OAAA;AACtB,kHAAA,oBAAoB,OAAA;AACpB,qHAAA,uBAAuB,OAAA;AAGzB,iCAAiC;AACjC,2CAUsB;AATpB,yHAAA,2BAA2B,OAAA;AAC3B,4HAAA,8BAA8B,OAAA;AAC9B,qHAAA,uBAAuB,OAAA;AACvB,oHAAA,sBAAsB,OAAA;AACtB,0HAAA,4BAA4B,OAAA;AAC5B,8HAAA,gCAAgC,OAAA;AAChC,4HAAA,8BAA8B,OAAA;AAC9B,gHAAA,kBAAkB,OAAA;AAClB,wHAAA,0BAA0B,OAAA;AAG5B,kDAAkD;AAClD,mEAAiH;AAAxG,gIAAA,sBAAsB,OAAA;AAAE,4HAAA,kBAAkB,OAAA;AAAE,uHAAA,aAAa,OAAA;AAAE,oHAAA,UAAU,OAAA;AAE9E,kCAAkC;AAClC,+CAA2E;AAAlE,uHAAA,uBAAuB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAElD,4BAA4B;AAC5B,yDAA2D;AAAlD,yHAAA,oBAAoB,OAAA;AAE7B,0DAA0D;AAC1D,uDAA4F;AAAnF,kHAAA,cAAc,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AAAE,sHAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,eAAe;AACf,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAExB,YAAY;AACZ,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAEtB,yBAAyB;AACzB,yCAcqB;AAbnB,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA;AAChB,+GAAA,kBAAkB,OAAA;AAClB,kHAAA,qBAAqB,OAAA;AACrB,8GAAA,iBAAiB,OAAA;AACjB,uHAAA,0BAA0B,OAAA;AAC1B,0GAAA,aAAa,OAAA;AACb,gHAAA,mBAAmB,OAAA;AACnB,uHAAA,0BAA0B,OAAA;AAC1B,kHAAA,qBAAqB,OAAA;AACrB,yHAAA,4BAA4B,OAAA;AAC5B,iHAAA,oBAAoB,OAAA;AAGtB,yBAAyB;AACzB,uCAAqE;AAA5D,4GAAA,gBAAgB,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAEhD,wBAAwB;AACxB,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AAExB,oBAAoB;AACpB,2CAOsB;AANpB,+GAAA,iBAAiB,OAAA;AACjB,4GAAA,cAAc,OAAA;AACd,kHAAA,oBAAoB,OAAA;AACpB,oHAAA,sBAAsB,OAAA;AACtB,kHAAA,oBAAoB,OAAA;AACpB,qHAAA,uBAAuB,OAAA;AAGzB,iCAAiC;AACjC,2CAUsB;AATpB,yHAAA,2BAA2B,OAAA;AAC3B,4HAAA,8BAA8B,OAAA;AAC9B,qHAAA,uBAAuB,OAAA;AACvB,oHAAA,sBAAsB,OAAA;AACtB,0HAAA,4BAA4B,OAAA;AAC5B,8HAAA,gCAAgC,OAAA;AAChC,4HAAA,8BAA8B,OAAA;AAC9B,gHAAA,kBAAkB,OAAA;AAClB,wHAAA,0BAA0B,OAAA;AAG5B,kDAAkD;AAClD,mEAAiH;AAAxG,gIAAA,sBAAsB,OAAA;AAAE,4HAAA,kBAAkB,OAAA;AAAE,uHAAA,aAAa,OAAA;AAAE,oHAAA,UAAU,OAAA;AAE9E,kCAAkC;AAClC,+CAA2E;AAAlE,uHAAA,uBAAuB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAElD,4BAA4B;AAC5B,yDAA2D;AAAlD,yHAAA,oBAAoB,OAAA;AAE7B,0DAA0D;AAC1D,uDAA4F;AAAnF,kHAAA,cAAc,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AAAE,sHAAA,kBAAkB,OAAA"}
@@ -85,4 +85,28 @@ export declare function testSyncAudiences(agentUrl: string, options: TestOptions
85
85
  steps: TestStepResult[];
86
86
  profile?: AgentProfile;
87
87
  }>;
88
+ /**
89
+ * Test: Media Buy Lifecycle
90
+ * Exercises the full state machine: create -> pause -> resume -> get status -> cancel
91
+ */
92
+ export declare function testMediaBuyLifecycle(agentUrl: string, options: TestOptions): Promise<{
93
+ steps: TestStepResult[];
94
+ profile?: AgentProfile;
95
+ }>;
96
+ /**
97
+ * Test: Terminal State Enforcement
98
+ * Verifies agents reject updates to media buys in terminal states.
99
+ */
100
+ export declare function testTerminalStateEnforcement(agentUrl: string, options: TestOptions): Promise<{
101
+ steps: TestStepResult[];
102
+ profile?: AgentProfile;
103
+ }>;
104
+ /**
105
+ * Test: Package Lifecycle
106
+ * Tests package-level pause/resume independent of media buy status.
107
+ */
108
+ export declare function testPackageLifecycle(agentUrl: string, options: TestOptions): Promise<{
109
+ steps: TestStepResult[];
110
+ profile?: AgentProfile;
111
+ }>;
88
112
  //# sourceMappingURL=media-buy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-buy.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/media-buy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAKjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAY,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItF;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI,CAiBvF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CAStG;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,WAAW,EACpB,MAAM,GAAE;IACN,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyCzB;AAgED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2GnF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CAqI9D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CA+I9D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CA2K9D;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CAwK9D;AAMD;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACrE,OAAO,CAAC;IAAE,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAmEhF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CA+J9D"}
1
+ {"version":3,"file":"media-buy.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/media-buy.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,9 @@ exports.testCreativeInline = testCreativeInline;
19
19
  exports.testCreativeReference = testCreativeReference;
20
20
  exports.resolveAccountForAudiences = resolveAccountForAudiences;
21
21
  exports.testSyncAudiences = testSyncAudiences;
22
+ exports.testMediaBuyLifecycle = testMediaBuyLifecycle;
23
+ exports.testTerminalStateEnforcement = testTerminalStateEnforcement;
24
+ exports.testPackageLifecycle = testPackageLifecycle;
22
25
  const client_1 = require("../client");
23
26
  const discovery_1 = require("./discovery");
24
27
  /**
@@ -207,6 +210,7 @@ async function testCreateMediaBuy(agentUrl, options) {
207
210
  async () => client.createMediaBuy(createRequest));
208
211
  let mediaBuyId;
209
212
  if (createResult?.success && createResult?.data) {
213
+ steps.push((0, client_1.validateResponseSchema)('create_media_buy', createResult.data));
210
214
  const mediaBuy = createResult.data;
211
215
  const nested = mediaBuy.media_buy;
212
216
  mediaBuyId = (mediaBuy.media_buy_id || nested?.media_buy_id);
@@ -276,6 +280,7 @@ async function testFullSalesFlow(agentUrl, options) {
276
280
  include_snapshot: true,
277
281
  }));
278
282
  if (snapshotResult?.success && snapshotResult?.data) {
283
+ steps.push((0, client_1.validateResponseSchema)('get_media_buys', snapshotResult.data));
279
284
  const mediaBuys = snapshotResult.data.media_buys || [];
280
285
  const mediaBuy = mediaBuys.find((item) => item.media_buy_id === mediaBuyId) || mediaBuys[0];
281
286
  const packages = mediaBuy?.packages || [];
@@ -569,6 +574,7 @@ async function testCreativeInline(agentUrl, options) {
569
574
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
570
575
  async () => client.createMediaBuy(createRequest));
571
576
  if (createResult?.success && createResult?.data) {
577
+ steps.push((0, client_1.validateResponseSchema)('create_media_buy', createResult.data));
572
578
  const mediaBuy = createResult.data;
573
579
  const nested = mediaBuy.media_buy;
574
580
  const mediaBuyId = (mediaBuy.media_buy_id || nested?.media_buy_id);
@@ -701,6 +707,7 @@ async function testCreativeReference(agentUrl, options) {
701
707
  });
702
708
  const { result: createResult, step: createStep } = await (0, client_1.runStep)('Create media buy with referenced creative', 'create_media_buy', async () => client.executeTask('create_media_buy', createRequest));
703
709
  if (createResult?.success && createResult?.data) {
710
+ steps.push((0, client_1.validateResponseSchema)('create_media_buy', createResult.data));
704
711
  const mediaBuy = createResult.data;
705
712
  const mediaBuyId = mediaBuy.media_buy_id || mediaBuy.media_buy?.media_buy_id;
706
713
  const packages = mediaBuy.packages || mediaBuy.media_buy?.packages;
@@ -905,4 +912,315 @@ async function testSyncAudiences(agentUrl, options) {
905
912
  steps.push(deleteStep);
906
913
  return { steps, profile };
907
914
  }
915
+ // ---------------------------------------------------------------------------
916
+ // State Machine Compliance Scenarios
917
+ // ---------------------------------------------------------------------------
918
+ /**
919
+ * Extract media buy status from a response, handling nested shapes.
920
+ */
921
+ function extractStatus(data) {
922
+ const nested = data.media_buy;
923
+ return (data.status ?? nested?.status);
924
+ }
925
+ /**
926
+ * Test: Media Buy Lifecycle
927
+ * Exercises the full state machine: create -> pause -> resume -> get status -> cancel
928
+ */
929
+ async function testMediaBuyLifecycle(agentUrl, options) {
930
+ const steps = [];
931
+ const client = (0, client_1.createTestClient)(agentUrl, options.protocol || 'mcp', options);
932
+ // Create a media buy to work with
933
+ const { steps: createSteps, profile, mediaBuyId } = await testCreateMediaBuy(agentUrl, options);
934
+ steps.push(...createSteps);
935
+ if (!mediaBuyId || !profile?.tools.includes('update_media_buy')) {
936
+ return { steps, profile };
937
+ }
938
+ // Step 1: Pause the media buy
939
+ const { result: pauseResult, step: pauseStep } = await (0, client_1.runStep)('Pause media buy', 'update_media_buy', async () => client.updateMediaBuy({
940
+ media_buy_id: mediaBuyId,
941
+ paused: true,
942
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
943
+ }));
944
+ if (pauseResult?.success && pauseResult?.data) {
945
+ const data = pauseResult.data;
946
+ const status = extractStatus(data);
947
+ pauseStep.details = `Paused media buy, status: ${status}`;
948
+ pauseStep.response_preview = JSON.stringify({ media_buy_id: mediaBuyId, status }, null, 2);
949
+ if (status && status !== 'paused') {
950
+ pauseStep.warnings = [`Expected status 'paused', got '${status}'`];
951
+ }
952
+ }
953
+ else if (pauseResult && !pauseResult.success) {
954
+ pauseStep.passed = false;
955
+ pauseStep.error = pauseResult.error || 'Pause operation failed';
956
+ }
957
+ steps.push(pauseStep);
958
+ // Step 2: Resume the media buy
959
+ const { result: resumeResult, step: resumeStep } = await (0, client_1.runStep)('Resume media buy', 'update_media_buy', async () => client.updateMediaBuy({
960
+ media_buy_id: mediaBuyId,
961
+ paused: false,
962
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
963
+ }));
964
+ if (resumeResult?.success && resumeResult?.data) {
965
+ const data = resumeResult.data;
966
+ const status = extractStatus(data);
967
+ resumeStep.details = `Resumed media buy, status: ${status}`;
968
+ resumeStep.response_preview = JSON.stringify({ media_buy_id: mediaBuyId, status }, null, 2);
969
+ if (status && status !== 'active' && status !== 'pending_activation') {
970
+ resumeStep.warnings = [`Expected status 'active' or 'pending_activation', got '${status}'`];
971
+ }
972
+ }
973
+ else if (resumeResult && !resumeResult.success) {
974
+ resumeStep.passed = false;
975
+ resumeStep.error = resumeResult.error || 'Resume operation failed';
976
+ }
977
+ steps.push(resumeStep);
978
+ // Step 3: Get status and check valid_actions (if get_media_buys available)
979
+ if (profile.tools.includes('get_media_buys')) {
980
+ const { result: statusResult, step: statusStep } = await (0, client_1.runStep)('Get media buy status and valid_actions', 'get_media_buys', async () => client.executeTask('get_media_buys', {
981
+ media_buy_ids: [mediaBuyId],
982
+ }));
983
+ if (statusResult?.success && statusResult?.data) {
984
+ const mediaBuys = (statusResult.data.media_buys || []);
985
+ const mediaBuy = mediaBuys.find((item) => item.media_buy_id === mediaBuyId) || mediaBuys[0];
986
+ if (!mediaBuy) {
987
+ statusStep.passed = false;
988
+ statusStep.error = 'get_media_buys did not return the created media buy';
989
+ }
990
+ else {
991
+ const validActions = mediaBuy.valid_actions;
992
+ statusStep.details = `Status: ${mediaBuy.status}, valid_actions: ${validActions ? validActions.join(', ') : 'not provided'}`;
993
+ statusStep.response_preview = JSON.stringify({
994
+ media_buy_id: mediaBuy.media_buy_id,
995
+ status: mediaBuy.status,
996
+ valid_actions: validActions,
997
+ }, null, 2);
998
+ }
999
+ }
1000
+ else if (statusResult && !statusResult.success) {
1001
+ statusStep.passed = false;
1002
+ statusStep.error = statusResult.error || 'get_media_buys failed';
1003
+ }
1004
+ steps.push(statusStep);
1005
+ }
1006
+ // Step 4: Cancel the media buy
1007
+ const { result: cancelResult, step: cancelStep } = await (0, client_1.runStep)('Cancel media buy', 'update_media_buy', async () => client.updateMediaBuy({
1008
+ media_buy_id: mediaBuyId,
1009
+ canceled: true,
1010
+ cancellation_reason: 'AdCP compliance test — lifecycle scenario',
1011
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
1012
+ }));
1013
+ if (cancelResult?.success && cancelResult?.data) {
1014
+ const data = cancelResult.data;
1015
+ const status = extractStatus(data);
1016
+ cancelStep.details = `Canceled media buy, status: ${status}`;
1017
+ cancelStep.response_preview = JSON.stringify({ media_buy_id: mediaBuyId, status }, null, 2);
1018
+ if (status && status !== 'canceled') {
1019
+ cancelStep.warnings = [`Expected status 'canceled', got '${status}'`];
1020
+ }
1021
+ }
1022
+ else if (cancelResult && !cancelResult.success) {
1023
+ // NOT_CANCELLABLE is a valid response — agent may not support cancellation
1024
+ const error = cancelResult.error || '';
1025
+ if (error.includes('NOT_CANCELLABLE') || error.includes('not_cancellable')) {
1026
+ cancelStep.passed = true;
1027
+ cancelStep.details = 'Agent does not support cancellation (NOT_CANCELLABLE)';
1028
+ }
1029
+ else {
1030
+ cancelStep.passed = false;
1031
+ cancelStep.error = cancelResult.error || 'Cancel operation failed';
1032
+ }
1033
+ }
1034
+ steps.push(cancelStep);
1035
+ return { steps, profile };
1036
+ }
1037
+ /**
1038
+ * Test: Terminal State Enforcement
1039
+ * Verifies agents reject updates to media buys in terminal states.
1040
+ */
1041
+ async function testTerminalStateEnforcement(agentUrl, options) {
1042
+ const steps = [];
1043
+ const client = (0, client_1.createTestClient)(agentUrl, options.protocol || 'mcp', options);
1044
+ // Create and cancel a media buy
1045
+ const { steps: createSteps, profile, mediaBuyId } = await testCreateMediaBuy(agentUrl, options);
1046
+ steps.push(...createSteps);
1047
+ if (!mediaBuyId || !profile?.tools.includes('update_media_buy')) {
1048
+ return { steps, profile };
1049
+ }
1050
+ // Cancel the media buy to put it in a terminal state
1051
+ const { result: cancelResult, step: cancelStep } = await (0, client_1.runStep)('Cancel media buy (setup)', 'update_media_buy', async () => client.updateMediaBuy({
1052
+ media_buy_id: mediaBuyId,
1053
+ canceled: true,
1054
+ cancellation_reason: 'AdCP compliance test — terminal state enforcement',
1055
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
1056
+ }));
1057
+ if (cancelResult?.success && cancelResult?.data) {
1058
+ const data = cancelResult.data;
1059
+ cancelStep.details = `Canceled media buy, status: ${extractStatus(data)}`;
1060
+ }
1061
+ else if (cancelResult && !cancelResult.success) {
1062
+ const error = cancelResult.error || '';
1063
+ if (error.includes('NOT_CANCELLABLE') || error.includes('not_cancellable')) {
1064
+ // Agent doesn't support cancellation — can't test terminal state enforcement
1065
+ cancelStep.passed = true;
1066
+ cancelStep.details = 'Agent does not support cancellation — skipping terminal state tests';
1067
+ steps.push(cancelStep);
1068
+ return { steps, profile };
1069
+ }
1070
+ cancelStep.passed = false;
1071
+ cancelStep.error = cancelResult.error || 'Cancel setup failed';
1072
+ }
1073
+ steps.push(cancelStep);
1074
+ // Try to pause the canceled media buy — should be rejected
1075
+ const { result: pauseResult, step: pauseStep } = await (0, client_1.runStep)('Update canceled media buy (expect rejection)', 'update_media_buy', async () => client.updateMediaBuy({
1076
+ media_buy_id: mediaBuyId,
1077
+ paused: true,
1078
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
1079
+ }));
1080
+ if (pauseResult?.success) {
1081
+ pauseStep.passed = false;
1082
+ pauseStep.error = 'Agent accepted update to canceled media buy — should reject with INVALID_STATE';
1083
+ }
1084
+ else if (pauseResult) {
1085
+ // Agent returned { success: false } — correct behavior
1086
+ pauseStep.passed = true;
1087
+ const error = pauseResult.error || '';
1088
+ const hasExpectedCode = error.includes('INVALID_STATE') || error.includes('invalid_state');
1089
+ pauseStep.details = hasExpectedCode
1090
+ ? 'Correctly rejected with INVALID_STATE'
1091
+ : `Correctly rejected update to canceled media buy: ${error}`;
1092
+ if (!hasExpectedCode && error) {
1093
+ pauseStep.warnings = ['Agent rejected the update but did not use INVALID_STATE error code'];
1094
+ }
1095
+ }
1096
+ // else: pauseResult is undefined (exception thrown) — runStep already set passed=false and error
1097
+ steps.push(pauseStep);
1098
+ // Try to cancel again — should also be rejected (or idempotent)
1099
+ const { result: reCancelResult, step: reCancelStep } = await (0, client_1.runStep)('Cancel already-canceled media buy (expect rejection)', 'update_media_buy', async () => client.updateMediaBuy({
1100
+ media_buy_id: mediaBuyId,
1101
+ canceled: true,
1102
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
1103
+ }));
1104
+ if (reCancelResult?.success) {
1105
+ // Idempotent cancellation is acceptable
1106
+ reCancelStep.passed = true;
1107
+ reCancelStep.details = 'Agent accepted re-cancellation (idempotent) — acceptable behavior';
1108
+ }
1109
+ else if (reCancelResult) {
1110
+ reCancelStep.passed = true;
1111
+ const error = reCancelResult.error || '';
1112
+ reCancelStep.details = `Correctly rejected re-cancellation: ${error}`;
1113
+ }
1114
+ steps.push(reCancelStep);
1115
+ return { steps, profile };
1116
+ }
1117
+ /**
1118
+ * Test: Package Lifecycle
1119
+ * Tests package-level pause/resume independent of media buy status.
1120
+ */
1121
+ async function testPackageLifecycle(agentUrl, options) {
1122
+ const steps = [];
1123
+ const client = (0, client_1.createTestClient)(agentUrl, options.protocol || 'mcp', options);
1124
+ // Create a media buy
1125
+ const { steps: createSteps, profile, mediaBuyId } = await testCreateMediaBuy(agentUrl, options);
1126
+ steps.push(...createSteps);
1127
+ if (!mediaBuyId || !profile?.tools.includes('update_media_buy')) {
1128
+ return { steps, profile };
1129
+ }
1130
+ // Find a package ID — try get_media_buys first, fall back to convention
1131
+ let packageId = 'pkg-0';
1132
+ if (profile.tools.includes('get_media_buys')) {
1133
+ const { result: fetchResult, step: fetchStep } = await (0, client_1.runStep)('Fetch package IDs', 'get_media_buys', async () => client.executeTask('get_media_buys', {
1134
+ media_buy_ids: [mediaBuyId],
1135
+ }));
1136
+ if (fetchResult?.success && fetchResult?.data) {
1137
+ const mediaBuys = (fetchResult.data.media_buys || []);
1138
+ const mediaBuy = mediaBuys.find((item) => item.media_buy_id === mediaBuyId) || mediaBuys[0];
1139
+ const packages = (mediaBuy?.packages || []);
1140
+ if (packages[0]?.package_id) {
1141
+ packageId = packages[0].package_id;
1142
+ fetchStep.details = `Found package ${packageId}`;
1143
+ }
1144
+ else {
1145
+ fetchStep.details = `No packages found, falling back to '${packageId}'`;
1146
+ }
1147
+ }
1148
+ else if (fetchResult && !fetchResult.success) {
1149
+ fetchStep.passed = false;
1150
+ fetchStep.error = fetchResult.error || 'get_media_buys failed during package ID discovery';
1151
+ }
1152
+ steps.push(fetchStep);
1153
+ }
1154
+ // Step 1: Pause a package
1155
+ const { result: pauseResult, step: pauseStep } = await (0, client_1.runStep)('Pause package', 'update_media_buy', async () => client.updateMediaBuy({
1156
+ media_buy_id: mediaBuyId,
1157
+ packages: [{ package_id: packageId, paused: true }],
1158
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
1159
+ }));
1160
+ if (pauseResult?.success && pauseResult?.data) {
1161
+ const data = pauseResult.data;
1162
+ const affectedPackages = (data.affected_packages || []);
1163
+ const pkg = affectedPackages.find(p => p.package_id === packageId) || affectedPackages[0];
1164
+ pauseStep.details = `Paused package ${packageId}, paused: ${pkg?.paused}`;
1165
+ pauseStep.response_preview = JSON.stringify({
1166
+ media_buy_id: mediaBuyId,
1167
+ media_buy_status: extractStatus(data),
1168
+ package_id: pkg?.package_id,
1169
+ package_paused: pkg?.paused,
1170
+ }, null, 2);
1171
+ }
1172
+ else if (pauseResult && !pauseResult.success) {
1173
+ pauseStep.passed = false;
1174
+ pauseStep.error = pauseResult.error || 'Package pause failed';
1175
+ }
1176
+ steps.push(pauseStep);
1177
+ // Step 2: Resume the package
1178
+ const { result: resumeResult, step: resumeStep } = await (0, client_1.runStep)('Resume package', 'update_media_buy', async () => client.updateMediaBuy({
1179
+ media_buy_id: mediaBuyId,
1180
+ packages: [{ package_id: packageId, paused: false }],
1181
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- intentional: test request bypasses strict typing
1182
+ }));
1183
+ if (resumeResult?.success && resumeResult?.data) {
1184
+ const data = resumeResult.data;
1185
+ const affectedPackages = (data.affected_packages || []);
1186
+ const pkg = affectedPackages.find(p => p.package_id === packageId) || affectedPackages[0];
1187
+ resumeStep.details = `Resumed package ${packageId}, paused: ${pkg?.paused}`;
1188
+ resumeStep.response_preview = JSON.stringify({
1189
+ media_buy_id: mediaBuyId,
1190
+ media_buy_status: extractStatus(data),
1191
+ package_id: pkg?.package_id,
1192
+ package_paused: pkg?.paused,
1193
+ }, null, 2);
1194
+ }
1195
+ else if (resumeResult && !resumeResult.success) {
1196
+ resumeStep.passed = false;
1197
+ resumeStep.error = resumeResult.error || 'Package resume failed';
1198
+ }
1199
+ steps.push(resumeStep);
1200
+ // Step 3: Verify media buy is still active
1201
+ if (profile.tools.includes('get_media_buys')) {
1202
+ const { result: verifyResult, step: verifyStep } = await (0, client_1.runStep)('Verify media buy still active after package operations', 'get_media_buys', async () => client.executeTask('get_media_buys', {
1203
+ media_buy_ids: [mediaBuyId],
1204
+ }));
1205
+ if (verifyResult?.success && verifyResult?.data) {
1206
+ const mediaBuys = (verifyResult.data.media_buys || []);
1207
+ const mediaBuy = mediaBuys.find((item) => item.media_buy_id === mediaBuyId) || mediaBuys[0];
1208
+ const status = mediaBuy?.status;
1209
+ if (status === 'active' || status === 'pending_activation') {
1210
+ verifyStep.details = `Media buy still ${status} after package-level operations`;
1211
+ }
1212
+ else {
1213
+ verifyStep.details = `Media buy status is '${status}' — expected 'active' or 'pending_activation'`;
1214
+ verifyStep.warnings = [`Package-level pause/resume changed media buy status to '${status}'`];
1215
+ }
1216
+ verifyStep.response_preview = JSON.stringify({ media_buy_id: mediaBuy?.media_buy_id, status }, null, 2);
1217
+ }
1218
+ else if (verifyResult && !verifyResult.success) {
1219
+ verifyStep.passed = false;
1220
+ verifyStep.error = verifyResult.error || 'get_media_buys verification failed';
1221
+ }
1222
+ steps.push(verifyStep);
1223
+ }
1224
+ return { steps, profile };
1225
+ }
908
1226
  //# sourceMappingURL=media-buy.js.map