@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.
- package/AGENTS.md +5 -0
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +4 -4
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +4 -4
- package/dist/lib/adapters/legacy/v2-5/types.d.ts +1 -1
- package/dist/lib/adapters/legacy/v2-5/types.js +1 -1
- package/dist/lib/core/ConversationTypes.d.ts +3 -3
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +4 -4
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +13 -13
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/errors/index.d.ts +10 -8
- package/dist/lib/errors/index.d.ts.map +1 -1
- package/dist/lib/errors/index.js +10 -9
- package/dist/lib/errors/index.js.map +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/decisioning/account.d.ts +84 -16
- package/dist/lib/server/decisioning/account.d.ts.map +1 -1
- package/dist/lib/server/decisioning/account.js.map +1 -1
- package/dist/lib/server/decisioning/index.d.ts +2 -2
- package/dist/lib/server/decisioning/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.js +4 -1
- package/dist/lib/server/decisioning/index.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +65 -3
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/tenant-registry.d.ts +127 -3
- package/dist/lib/server/decisioning/tenant-registry.d.ts.map +1 -1
- package/dist/lib/server/decisioning/tenant-registry.js +223 -0
- package/dist/lib/server/decisioning/tenant-registry.js.map +1 -1
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
- package/dist/lib/testing/compliance/comply.js +46 -11
- package/dist/lib/testing/compliance/comply.js.map +1 -1
- package/dist/lib/testing/compliance/storyboard-tracks.js +22 -5
- package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -1
- package/dist/lib/testing/compliance/types.d.ts +21 -1
- package/dist/lib/testing/compliance/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/assertions.d.ts +19 -1
- package/dist/lib/testing/storyboard/assertions.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/assertions.js.map +1 -1
- package/dist/lib/testing/storyboard/default-invariants.js +17 -0
- package/dist/lib/testing/storyboard/default-invariants.js.map +1 -1
- package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/loader.js +41 -0
- package/dist/lib/testing/storyboard/loader.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +157 -21
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/types.d.ts +69 -1
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/types.js.map +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/validations.js +176 -0
- package/dist/lib/testing/storyboard/validations.js.map +1 -1
- package/dist/lib/utils/sync-creatives-adapter.d.ts +7 -7
- package/dist/lib/utils/sync-creatives-adapter.d.ts.map +1 -1
- package/dist/lib/utils/sync-creatives-adapter.js +28 -44
- package/dist/lib/utils/sync-creatives-adapter.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/examples/decisioning-platform-broadcast-tv.ts +2 -8
- package/examples/decisioning-platform-mock-seller.ts +2 -4
- package/examples/decisioning-platform-multi-tenant.ts +26 -4
- package/examples/decisioning-platform-programmatic.ts +4 -17
- package/package.json +1 -1
- package/skills/build-decisioning-platform/SKILL.md +62 -44
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/loader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAeH,0CAuBC;AAGD,gDAEC;AAUD,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/loader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAeH,0CAuBC;AAGD,gDAEC;AAUD,0DAWC;AA9DD,2BAAkC;AAClC,+BAA6B;AAE7B,yDAAyD;AAEzD;;;;GAIG;AACU,QAAA,oBAAoB,GAAG,CAAC,QAAQ,CAAU,CAAC;AAExD,oFAAoF;AACpF,SAAgB,eAAe,CAAC,WAAmB;IACjD,MAAM,MAAM,GAAG,IAAA,YAAK,EAAC,WAAW,CAAe,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,wEAAwE;QACxE,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACnC,wEAAwE;QACxE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,SAAS;YACpC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,MAA4C,CAAC;gBACzD,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,IAAc,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kGAAkG;AAClG,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,OAAO,eAAe,CAAC,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,UAAsB;IAC5D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtC,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,SAAS;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,2BAA2B,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACxD,8BAA8B,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3D,sBAAsB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACnD,0BAA0B,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,8BAA8B,CACrC,YAAoB,EACpB,KAAmC,EACnC,IAAmD;IAEnD,IAAI,CAAC,4BAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO;IAC3C,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;QAAE,OAAO;IAC9C,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;QAAE,OAAO;IACvC,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,IAAI,KAAK;QAC7E,oFAAoF;QACpF,oFAAoF;QACpF,mCAAmC,CACtC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,YAAoB,EACpB,KAAmC,EACnC,IAAmD;IAEnD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM;QAAE,OAAO;IAC1C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;QAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC;QAClD,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,2BAA2B;gBAC/E,IAAI,MAAM,CAAC,GAAG,iDAAiD,CAClE,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,2BAA2B;gBAC/E,IAAI,MAAM,CAAC,GAAG,kEAAkE,CACnF,CAAC;QACJ,CAAC;QACD,2EAA2E;QAC3E,sEAAsE;QACtE,+BAA+B;QAC/B,IAAI,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,2BAA2B;gBAC/E,IAAI,MAAM,CAAC,GAAG,iCAAiC,MAAM,CAAC,QAAQ,KAAK;gBACnE,oCAAoC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,0BAA0B,CACjC,YAAoB,EACpB,KAAmC,EACnC,IAAmD;IAEnD,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS;QAAE,OAAO;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,yDAAyD,CAChH,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,2DAA2D,CAClH,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,iDAAiD,CACxG,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,mCAAmC,MAAM,iDAAiD,CACjJ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,mCAAmC,MAAM,oBAAoB,CACpH,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAoB,EAAE,KAAmC;IAClF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO;IAC3C,MAAM,EAAE,GAAG,KAAK,CAAC,UAAqB,CAAC;IACvC,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,wDAAwD,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAA6B,CAAC;IACxD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,6CAA6C,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,oDAAoD,CAAC,CAAC;IAC5G,CAAC;IACD,kEAAkE;IAClE,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,IAAI,CAAE,4BAA0C,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,4BAA4B,SAAS,8BAA8B,4BAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1I,CAAC;IACJ,CAAC;IACD,qEAAqE;IACrE,sEAAsE;IACtE,sEAAsE;IACtE,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,YAAY,YAAY,KAAK,CAAC,EAAE,0DAA0D,CAAC,CAAC;IAClH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,2BAA2B,CAClC,YAAoB,EACpB,KAAmC,EACnC,IAAmD;IAEnD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC;IAEpD,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,YAAY,WAAW,IAAI,CAAC,EAAE,+DAA+D,CAAC,CAAC;IACrH,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,WAAW,IAAI,CAAC,EAAE,8EAA8E,CACjH,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,SAAS,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CACb,IAAI,YAAY,WAAW,IAAI,CAAC,EAAE,sBAAsB,IAAI,CAAC,cAAc,iDAAiD,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,CACnJ,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmDH,OAAO,KAAK,EAYV,UAAU,EACV,cAAc,EAEd,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAEhB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAA4B,cAAc,EAAE,MAAM,UAAU,CAAC;AAwCzE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAQ/E;AAkKD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEpC;AAED,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEpC;AAiDD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,EACjC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAuC3B;AA4DD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,cAAc,GAC5B,gBAAgB,CA6ClB;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmDH,OAAO,KAAK,EAYV,UAAU,EACV,cAAc,EAEd,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAEhB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAA4B,cAAc,EAAE,MAAM,UAAU,CAAC;AAwCzE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAQ/E;AAkKD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEpC;AAED,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEpC;AAiDD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,EACjC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAuC3B;AA4DD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,cAAc,GAC5B,gBAAgB,CA6ClB;AA0gCD;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,qBAAqB,EAAE,GAC9B,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAAC,CA0B9G;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,uBAAuB,CA4BlG;AAMD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAsE/B;AA89BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwCzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AA8OD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,iBAAsB,GAC9B,qBAAqB,GAAG,SAAS,CAgBnC"}
|
|
@@ -635,6 +635,11 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
635
635
|
// or skipped to materialize state, every downstream stateful step
|
|
636
636
|
// stays cascade-skipped regardless of which phase it lives in.
|
|
637
637
|
let statefulFailed = false;
|
|
638
|
+
// `substitution_chain` is set when the trigger came from a
|
|
639
|
+
// deferred-and-unrescued `peer_substitutes_for` declaration (#1144) so
|
|
640
|
+
// the cascade-detail message can name the substitute(s) that didn't
|
|
641
|
+
// pass. Absent for the immediate-trip path and the legacy any-peer
|
|
642
|
+
// not_applicable path.
|
|
638
643
|
let statefulSkipTrigger = null;
|
|
639
644
|
// Step results whose failures the main loop added to failedCount. The
|
|
640
645
|
// branch-set post-pass decrements only for entries that were actually
|
|
@@ -789,17 +794,51 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
789
794
|
// cross-phase setup → assertion patterns. See declaration site for
|
|
790
795
|
// the rationale (signal_marketplace/governance_denied story).
|
|
791
796
|
//
|
|
792
|
-
// Phase-scoped substitution tracking (adcp-client#1005, round-9).
|
|
793
|
-
//
|
|
794
|
-
//
|
|
795
|
-
//
|
|
796
|
-
//
|
|
797
|
-
//
|
|
798
|
-
//
|
|
799
|
-
//
|
|
800
|
-
//
|
|
797
|
+
// Phase-scoped substitution tracking (adcp-client#1005, round-9; #1144).
|
|
798
|
+
//
|
|
799
|
+
// Two deferral paths:
|
|
800
|
+
// 1. `not_applicable` on a stateful step (any-peer rescue) — preserved
|
|
801
|
+
// from the F6 fix. Rescued by ANY passing stateful step in the
|
|
802
|
+
// phase. Backward-compatible with storyboards that haven't adopted
|
|
803
|
+
// explicit substitution declarations.
|
|
804
|
+
// 2. `missing_tool` / `missing_test_controller` on a stateful step
|
|
805
|
+
// WITH a declared substitute peer (`peer_substitutes_for`) in the
|
|
806
|
+
// same phase. Rescued ONLY when the declared substitute actually
|
|
807
|
+
// passes. Without a declaration, hard-missing reasons trip the
|
|
808
|
+
// cascade immediately as before.
|
|
809
|
+
//
|
|
810
|
+
// Path (2) is opt-in via storyboard YAML: a substitute step declares
|
|
811
|
+
// `peer_substitutes_for: <target_step_id>` to assert that its passing
|
|
812
|
+
// establishes equivalent state. Phase membership alone is NOT treated
|
|
813
|
+
// as substitutability — explicit declaration is required.
|
|
801
814
|
let phasePendingNotApplicable = null;
|
|
802
815
|
let phaseEstablishedStatefulState = false;
|
|
816
|
+
// Path (2): index of declared substitutions for this phase. Map keys
|
|
817
|
+
// are target step IDs (the steps being substituted FOR); values are the
|
|
818
|
+
// step IDs that declared the substitution. Built once per phase from
|
|
819
|
+
// each step's `peer_substitutes_for` field.
|
|
820
|
+
const phaseSubstitutes = new Map();
|
|
821
|
+
for (const declaringStep of phase.steps) {
|
|
822
|
+
const decl = declaringStep.peer_substitutes_for;
|
|
823
|
+
if (decl === undefined)
|
|
824
|
+
continue;
|
|
825
|
+
const targets = Array.isArray(decl) ? decl : [decl];
|
|
826
|
+
for (const target of targets) {
|
|
827
|
+
const arr = phaseSubstitutes.get(target) ?? [];
|
|
828
|
+
arr.push(declaringStep.id);
|
|
829
|
+
phaseSubstitutes.set(target, arr);
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
// Path (2) state. `phasePendingMissingTool` is the deferred-cascade
|
|
833
|
+
// trigger for a stateful step that skipped with a hard-missing reason
|
|
834
|
+
// AND has at least one declared substitute in this phase. Only the
|
|
835
|
+
// first such trigger is recorded — the cascade-detail message
|
|
836
|
+
// references the leftmost step.
|
|
837
|
+
let phasePendingMissingTool = null;
|
|
838
|
+
// Targets actually rescued by a passing declared substitute. Populated
|
|
839
|
+
// when a step with `peer_substitutes_for: X` passes — every X in its
|
|
840
|
+
// declaration list lands here.
|
|
841
|
+
const phaseRescuedTargets = new Set();
|
|
803
842
|
// PRM presence-probe state (adcp-client#677). `phaseAbsent` flips when
|
|
804
843
|
// /.well-known/oauth-protected-resource returns 404 — subsequent steps
|
|
805
844
|
// in this phase cascade-skip instead of failing their http_status:200
|
|
@@ -886,13 +925,45 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
886
925
|
continue;
|
|
887
926
|
}
|
|
888
927
|
// Skip remaining steps if a stateful dependency failed (or
|
|
889
|
-
// skipped for a missing-state reason).
|
|
890
|
-
//
|
|
891
|
-
//
|
|
892
|
-
//
|
|
928
|
+
// skipped for a missing-state reason). Before applying the
|
|
929
|
+
// cascade reason, check the step's intrinsic skip-eligibility:
|
|
930
|
+
// if the agent never advertised this step's tool, the correct
|
|
931
|
+
// reason is `missing_tool` (a benign, passed: true skip) —
|
|
932
|
+
// not `prerequisite_failed` (a failed skip). This distinguishes
|
|
933
|
+
// "this agent has a real setup bug" from "this agent doesn't
|
|
934
|
+
// claim this surface, by design" (adcp-client#1169).
|
|
935
|
+
//
|
|
936
|
+
// Uses resolveTaskName so that $test_kit.* steps are checked
|
|
937
|
+
// against the resolved concrete task name, not the template
|
|
938
|
+
// string (which would never be in agentTools).
|
|
893
939
|
if (statefulFailed && step.stateful) {
|
|
940
|
+
const resolvedTask = resolveTaskName(step, options);
|
|
941
|
+
if (options.agentTools && resolvedTask && !options.agentTools.includes(resolvedTask)) {
|
|
942
|
+
const toolDetail = `Agent did not advertise tool "${resolvedTask}"; agent tools: [${options.agentTools.join(', ')}].`;
|
|
943
|
+
const missingToolResult = {
|
|
944
|
+
storyboard_id: storyboard.id,
|
|
945
|
+
step_id: step.id,
|
|
946
|
+
phase_id: phase.id,
|
|
947
|
+
title: step.title,
|
|
948
|
+
task: resolvedTask,
|
|
949
|
+
passed: true,
|
|
950
|
+
skipped: true,
|
|
951
|
+
skip_reason: 'missing_tool',
|
|
952
|
+
skip: buildSkip('missing_tool', toolDetail),
|
|
953
|
+
duration_ms: 0,
|
|
954
|
+
validations: [],
|
|
955
|
+
context,
|
|
956
|
+
extraction: { path: 'none' },
|
|
957
|
+
};
|
|
958
|
+
stepResults.push(missingToolResult);
|
|
959
|
+
priorStepResults.set(step.id, missingToolResult);
|
|
960
|
+
skippedCount++;
|
|
961
|
+
continue;
|
|
962
|
+
}
|
|
894
963
|
const detail = statefulSkipTrigger
|
|
895
|
-
?
|
|
964
|
+
? statefulSkipTrigger.substitution_chain
|
|
965
|
+
? `Skipped: prior stateful step "${statefulSkipTrigger.stepId}" skipped (${statefulSkipTrigger.reason}); ${statefulSkipTrigger.substitution_chain}; state never materialized.`
|
|
966
|
+
: `Skipped: prior stateful step "${statefulSkipTrigger.stepId}" skipped (${statefulSkipTrigger.reason}); state never materialized.`
|
|
896
967
|
: 'Skipped: prior stateful step failed.';
|
|
897
968
|
stepResults.push({
|
|
898
969
|
storyboard_id: storyboard.id,
|
|
@@ -933,6 +1004,17 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
933
1004
|
}
|
|
934
1005
|
stepResults.push(result);
|
|
935
1006
|
priorStepResults.set(step.id, result);
|
|
1007
|
+
// Thread accumulated cross-step context into each assertion context
|
|
1008
|
+
// before onStep fires. `context` here is the accumulated state from
|
|
1009
|
+
// all prior steps (updated at the bottom of this loop); assertions
|
|
1010
|
+
// read it via ctx.storyboardContext to implement cross-step comparison
|
|
1011
|
+
// validators (adcp-client#1140, Option 2 / context-outputs style).
|
|
1012
|
+
// Each assertion gets its own shallow copy so a mutating handler
|
|
1013
|
+
// doesn't corrupt the view seen by subsequent assertions in the same
|
|
1014
|
+
// step, or the live accumulator seen by subsequent steps.
|
|
1015
|
+
for (const spec of assertions) {
|
|
1016
|
+
assertionContexts.get(spec.id).storyboardContext = { ...context };
|
|
1017
|
+
}
|
|
936
1018
|
// Fire per-step assertions. Each result is appended to the step's
|
|
937
1019
|
// `validations[]` under `check: "assertion"` so existing UI renders
|
|
938
1020
|
// them alongside inline checks, and mirrored into `assertionResults`
|
|
@@ -1021,13 +1103,31 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1021
1103
|
// path) deliberately don't trip the flag.
|
|
1022
1104
|
if (step.stateful) {
|
|
1023
1105
|
if (isHardMissingStateSkipReason(result.skip_reason)) {
|
|
1024
|
-
|
|
1025
|
-
//
|
|
1026
|
-
//
|
|
1027
|
-
//
|
|
1028
|
-
//
|
|
1029
|
-
|
|
1030
|
-
|
|
1106
|
+
// Hard-missing skip on a stateful step. Defer the cascade only
|
|
1107
|
+
// when a peer in this phase has declared
|
|
1108
|
+
// `peer_substitutes_for: <this_step_id>` — that peer's pass
|
|
1109
|
+
// establishes equivalent state. Without a declaration,
|
|
1110
|
+
// missing_tool / missing_test_controller trips the cascade
|
|
1111
|
+
// immediately (existing behavior).
|
|
1112
|
+
const substitutes = phaseSubstitutes.get(step.id);
|
|
1113
|
+
if (substitutes && substitutes.length > 0) {
|
|
1114
|
+
if (phasePendingMissingTool === null) {
|
|
1115
|
+
phasePendingMissingTool = {
|
|
1116
|
+
stepId: step.id,
|
|
1117
|
+
reason: result.skip_reason ?? 'missing_tool',
|
|
1118
|
+
substitutes,
|
|
1119
|
+
};
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
1122
|
+
else {
|
|
1123
|
+
statefulFailed = true;
|
|
1124
|
+
// Record provenance for the cascade detail message. First trip
|
|
1125
|
+
// wins — subsequent triggers don't overwrite, since the cascade
|
|
1126
|
+
// text references the originating diagnostic (the leftmost
|
|
1127
|
+
// missing-state stateful step in the phase).
|
|
1128
|
+
if (statefulSkipTrigger === null) {
|
|
1129
|
+
statefulSkipTrigger = { stepId: step.id, reason: result.skip_reason ?? 'missing_tool' };
|
|
1130
|
+
}
|
|
1031
1131
|
}
|
|
1032
1132
|
}
|
|
1033
1133
|
else if (result.skip_reason === 'not_applicable') {
|
|
@@ -1064,6 +1164,17 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1064
1164
|
// the deferred cascade should NOT fire at phase end.
|
|
1065
1165
|
if (step.stateful) {
|
|
1066
1166
|
phaseEstablishedStatefulState = true;
|
|
1167
|
+
// Path (2) rescue tracking: a passing step that declared
|
|
1168
|
+
// `peer_substitutes_for: X` rescues X. Recorded against every
|
|
1169
|
+
// declared target so phase-end resolution sees the target as
|
|
1170
|
+
// covered even if its skip arrives later in the loop.
|
|
1171
|
+
const decl = step.peer_substitutes_for;
|
|
1172
|
+
if (decl !== undefined) {
|
|
1173
|
+
const targets = Array.isArray(decl) ? decl : [decl];
|
|
1174
|
+
for (const target of targets) {
|
|
1175
|
+
phaseRescuedTargets.add(target);
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1067
1178
|
}
|
|
1068
1179
|
}
|
|
1069
1180
|
else {
|
|
@@ -1110,6 +1221,26 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1110
1221
|
statefulSkipTrigger = phasePendingNotApplicable;
|
|
1111
1222
|
}
|
|
1112
1223
|
}
|
|
1224
|
+
// Phase-end cascade resolution for deferred `missing_tool` triggers
|
|
1225
|
+
// (#1144). A stateful step that skipped with a hard-missing reason
|
|
1226
|
+
// and had at least one declared substitute (`peer_substitutes_for`)
|
|
1227
|
+
// was deferred above. If none of the declared substitutes passed,
|
|
1228
|
+
// the substitution path failed to establish state — promote to a
|
|
1229
|
+
// hard cascade with a detail message that names the substitute(s)
|
|
1230
|
+
// tried so adopters reading the report see the substitution chain
|
|
1231
|
+
// rather than a bare `missing_tool` cascade origin.
|
|
1232
|
+
if (phasePendingMissingTool && !phaseRescuedTargets.has(phasePendingMissingTool.stepId) && !statefulFailed) {
|
|
1233
|
+
statefulFailed = true;
|
|
1234
|
+
if (statefulSkipTrigger === null) {
|
|
1235
|
+
const subs = phasePendingMissingTool.substitutes;
|
|
1236
|
+
const subsList = subs.length === 1 ? `"${subs[0]}"` : subs.map(s => `"${s}"`).join(', ');
|
|
1237
|
+
statefulSkipTrigger = {
|
|
1238
|
+
stepId: phasePendingMissingTool.stepId,
|
|
1239
|
+
reason: phasePendingMissingTool.reason,
|
|
1240
|
+
substitution_chain: `declared substitute ${subsList} did not pass`,
|
|
1241
|
+
};
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1113
1244
|
phaseResults.push({
|
|
1114
1245
|
phase_id: phase.id,
|
|
1115
1246
|
phase_title: phase.title,
|
|
@@ -1131,6 +1262,11 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1131
1262
|
const branchSetsByPhaseId = resolveBranchSets(storyboard);
|
|
1132
1263
|
const branchSetDelta = applyBranchSetGrading(storyboard.phases, phaseResults, branchSetsByPhaseId, contributions, contributionSources, countedAsFailed);
|
|
1133
1264
|
skippedCount += branchSetDelta.skippedDelta;
|
|
1265
|
+
// Update assertion contexts with the final accumulated context so onEnd
|
|
1266
|
+
// handlers see the full run's context (not just through the penultimate step).
|
|
1267
|
+
for (const spec of assertions) {
|
|
1268
|
+
assertionContexts.get(spec.id).storyboardContext = { ...context };
|
|
1269
|
+
}
|
|
1134
1270
|
// Fire storyboard-scoped assertions. These observe the full run and can
|
|
1135
1271
|
// emit `scope: "storyboard"` findings that flip `overall_passed` without
|
|
1136
1272
|
// being attributable to a single step (e.g. "saw >1 acquire for the same
|