Summary
AdCP spec defines 3 async response schemas for sync_creatives:
SyncCreativesAsyncResponseSubmitted — returned when sync operation is queued
SyncCreativesAsyncResponseWorking — progress info during processing
SyncCreativesAsyncResponseInputRequired — pause conditions requiring human input
Library types exist in adcp.types.generated_poc.media_buy. Salesagent has zero implementation.
Spec Obligations
- UC-006-ASYNC-LIFECYCLE-01 (P3, MUST)
- UC-006-ASYNC-LIFECYCLE-02 (P3, MUST)
- UC-006-ASYNC-LIFECYCLE-03 (P3, MUST)
Implementation Scope
- Extend schemas with local types inheriting from library async response types
- Add async mode parameter to
sync_creatives
- Background task queue (Celery/RQ) for async creative processing
- Progress tracking during sync
- Pause/resume mechanism for input-required scenarios
- Status endpoint for checking async task progress
Context
This aligns with the broader architectural direction: adapters should NOT run in the HTTP request cycle. The correct flow is accept order → validate against local Postgres → return 201 pending → background worker calls adapter → update status → notify buyer.
Currently 3 xfailed tests cover these obligations in tests/integration/test_creative_sync_behavioral.py.
Summary
AdCP spec defines 3 async response schemas for
sync_creatives:SyncCreativesAsyncResponseSubmitted— returned when sync operation is queuedSyncCreativesAsyncResponseWorking— progress info during processingSyncCreativesAsyncResponseInputRequired— pause conditions requiring human inputLibrary types exist in
adcp.types.generated_poc.media_buy. Salesagent has zero implementation.Spec Obligations
Implementation Scope
sync_creativesContext
This aligns with the broader architectural direction: adapters should NOT run in the HTTP request cycle. The correct flow is accept order → validate against local Postgres → return
201 pending→ background worker calls adapter → update status → notify buyer.Currently 3 xfailed tests cover these obligations in
tests/integration/test_creative_sync_behavioral.py.