@adcp/sdk 14.0.0-beta.5 → 14.0.0-beta.6

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 (80) hide show
  1. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  2. package/dist/lib/core/AgentClient.js +26 -10
  3. package/dist/lib/core/AgentClient.js.map +1 -1
  4. package/dist/lib/core/AgentClient.mjs +26 -10
  5. package/dist/lib/core/AgentClient.mjs.map +1 -1
  6. package/dist/lib/core/AsyncHandler.d.mts +4 -2
  7. package/dist/lib/core/AsyncHandler.d.ts +4 -2
  8. package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
  9. package/dist/lib/core/AsyncHandler.js +15 -1
  10. package/dist/lib/core/AsyncHandler.js.map +1 -1
  11. package/dist/lib/core/AsyncHandler.mjs +15 -1
  12. package/dist/lib/core/AsyncHandler.mjs.map +1 -1
  13. package/dist/lib/core/SingleAgentClient.d.mts +3 -1
  14. package/dist/lib/core/SingleAgentClient.d.ts +3 -1
  15. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  16. package/dist/lib/core/SingleAgentClient.js +158 -39
  17. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  18. package/dist/lib/core/SingleAgentClient.mjs +167 -40
  19. package/dist/lib/core/SingleAgentClient.mjs.map +1 -1
  20. package/dist/lib/core/TaskExecutor.d.mts +57 -2
  21. package/dist/lib/core/TaskExecutor.d.ts +57 -2
  22. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  23. package/dist/lib/core/TaskExecutor.js +382 -44
  24. package/dist/lib/core/TaskExecutor.js.map +1 -1
  25. package/dist/lib/core/TaskExecutor.mjs +382 -45
  26. package/dist/lib/core/TaskExecutor.mjs.map +1 -1
  27. package/dist/lib/core/request-proposals-guard.d.mts +11 -0
  28. package/dist/lib/core/request-proposals-guard.d.ts +12 -0
  29. package/dist/lib/core/request-proposals-guard.d.ts.map +1 -0
  30. package/dist/lib/core/request-proposals-guard.js +65 -0
  31. package/dist/lib/core/request-proposals-guard.js.map +1 -0
  32. package/dist/lib/core/request-proposals-guard.mjs +39 -0
  33. package/dist/lib/core/request-proposals-guard.mjs.map +1 -0
  34. package/dist/lib/core/webhook-registration.d.mts +5 -0
  35. package/dist/lib/core/webhook-registration.d.ts +5 -0
  36. package/dist/lib/core/webhook-registration.d.ts.map +1 -1
  37. package/dist/lib/core/webhook-registration.js +13 -0
  38. package/dist/lib/core/webhook-registration.js.map +1 -1
  39. package/dist/lib/core/webhook-registration.mjs +13 -0
  40. package/dist/lib/core/webhook-registration.mjs.map +1 -1
  41. package/dist/lib/media-buy/compatibility.d.mts +45 -10
  42. package/dist/lib/media-buy/compatibility.d.ts +45 -10
  43. package/dist/lib/media-buy/compatibility.d.ts.map +1 -1
  44. package/dist/lib/media-buy/compatibility.js +295 -113
  45. package/dist/lib/media-buy/compatibility.js.map +1 -1
  46. package/dist/lib/media-buy/compatibility.mjs +295 -113
  47. package/dist/lib/media-buy/compatibility.mjs.map +1 -1
  48. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  49. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  50. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  51. package/dist/lib/types/core.generated.d.mts +334 -85
  52. package/dist/lib/types/core.generated.d.ts +334 -85
  53. package/dist/lib/types/core.generated.d.ts.map +1 -1
  54. package/dist/lib/types/core.generated.js.map +1 -1
  55. package/dist/lib/types/decline-proposals.d.ts +0 -5
  56. package/dist/lib/types/index.d.mts +2 -0
  57. package/dist/lib/types/index.d.ts +2 -0
  58. package/dist/lib/types/index.d.ts.map +1 -1
  59. package/dist/lib/types/index.js.map +1 -1
  60. package/dist/lib/types/index.mjs.map +1 -1
  61. package/dist/lib/types/request-proposals.d.ts +254 -36
  62. package/dist/lib/types/schemas.generated.d.ts +3123 -835
  63. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  64. package/dist/lib/types/schemas.generated.js +192 -85
  65. package/dist/lib/types/schemas.generated.js.map +1 -1
  66. package/dist/lib/types/schemas.generated.mjs +192 -85
  67. package/dist/lib/types/schemas.generated.mjs.map +1 -1
  68. package/dist/lib/types/tools.generated.d.mts +1 -121
  69. package/dist/lib/types/tools.generated.d.ts +1 -121
  70. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  71. package/dist/lib/types/tools.generated.js.map +1 -1
  72. package/dist/lib/version.d.mts +3 -3
  73. package/dist/lib/version.d.ts +3 -3
  74. package/dist/lib/version.js +3 -3
  75. package/dist/lib/version.js.map +1 -1
  76. package/dist/lib/version.mjs +3 -3
  77. package/dist/lib/version.mjs.map +1 -1
  78. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +28 -14
  79. package/docs/llms.txt +1 -1
  80. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/core/AsyncHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/core/AsyncHandler.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,20 @@ class AsyncHandler {
27
27
  this.config = config;
28
28
  }
29
29
  config;
30
+ /** Emit duplicate observability without re-running public result handlers. */
31
+ async handleDurableSettlementDuplicate(metadata) {
32
+ await this.emitActivity({
33
+ type: "webhook_duplicate",
34
+ operation_id: metadata.operation_id,
35
+ agent_id: metadata.agent_id,
36
+ context_id: metadata.context_id,
37
+ task_id: metadata.task_id,
38
+ task_type: metadata.task_type,
39
+ status: metadata.status,
40
+ idempotency_key: metadata.idempotency_key,
41
+ timestamp: metadata.timestamp
42
+ });
43
+ }
30
44
  /**
31
45
  * Handle incoming webhook payload (both task completions and notifications)
32
46
  */
@@ -58,7 +72,7 @@ class AsyncHandler {
58
72
  task_id: metadata.task_id,
59
73
  task_type: metadata.task_type,
60
74
  status: metadata.status,
61
- payload: metadata.rawHTTPPayload?.result ?? result,
75
+ payload: result,
62
76
  timestamp: metadata.timestamp
63
77
  });
64
78
  if (metadata.task_type === "media_buy_delivery" && result && typeof result === "object" && "notification_type" in result) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/core/AsyncHandler.ts"],"sourcesContent":["/**\n * Structured async handler for AdCP webhook responses\n * Provides type-safe callbacks for each AdCP tool completion\n */\n\nimport type { IdempotencyBackend } from '../server/idempotency/store';\nimport type {\n ListCreativeFormatsResponse,\n ListCreativesResponse,\n PreviewCreativeResponse,\n BuildCreativeResponse,\n GetMediaBuysResponse,\n GetMediaBuyDeliveryResponse,\n GetCreativeDeliveryResponse,\n ProvidePerformanceFeedbackResponse,\n GetSignalsResponse,\n ActivateSignalResponse,\n ListAccountsResponse,\n SyncAccountsResponse,\n SyncAudiencesResponse,\n CreatePropertyListResponse,\n GetPropertyListResponse,\n UpdatePropertyListResponse,\n ListPropertyListsResponse,\n DeletePropertyListResponse,\n ListContentStandardsResponse,\n GetContentStandardsResponse,\n CalibrateContentResponse,\n ValidateContentDeliveryResponse,\n SIGetOfferingResponse,\n SIInitiateSessionResponse,\n SISendMessageResponse,\n SITerminateSessionResponse,\n CreateMediaBuyResponse,\n GetProductsResponse,\n UpdateMediaBuyResponse,\n SyncCreativesResponse,\n} from '../types/tools.generated';\n\nimport type {\n AdCPAsyncResponseData,\n CreateMediaBuyAsyncInputRequired,\n CreateMediaBuyAsyncSubmitted,\n CreateMediaBuyAsyncWorking,\n GetProductsAsyncInputRequired,\n GetProductsAsyncSubmitted,\n GetProductsAsyncWorking,\n SyncCreativesAsyncInputRequired,\n SyncCreativesAsyncSubmitted,\n SyncCreativesAsyncWorking,\n TaskStatus,\n TaskType,\n UpdateMediaBuyAsyncInputRequired,\n UpdateMediaBuyAsyncSubmitted,\n UpdateMediaBuyAsyncWorking,\n} from '../types/core.generated';\nimport type { TaskResultMetadata } from './ConversationTypes';\nimport {\n CreateMediaBuyAsyncResponseData,\n GetProductsAsyncResponseData,\n SyncCreativesAsyncResponseData,\n UpdateMediaBuyAsyncResponseData,\n} from '../types';\nimport type {\n CanonicalCreativeResponse,\n CanonicalGetProductsResponse,\n CanonicalListCreativesResponse,\n} from '../v2/projection/creative-delivery';\n\n/**\n * Metadata provided with webhook responses\n */\nexport interface WebhookMetadata {\n /** Client-provided operation ID */\n operation_id: string;\n /** Server's task ID */\n task_id: string;\n /** Agent ID */\n agent_id: string;\n /** Task type/tool name */\n task_type: string;\n /** Task status (completed, failed, needs_input, working, etc) */\n status: TaskStatus;\n /** Server's context ID */\n context_id?: string;\n /** Human-readable context about the status change */\n message?: string;\n /** Timestamp */\n timestamp: string;\n /** raw HTTP payload */\n rawHTTPPayload?: any;\n /**\n * Wire protocol that delivered this webhook. Useful for handler code\n * that needs to treat MCP and A2A transports differently (e.g.,\n * `idempotency_key` is only present on MCP payloads).\n */\n protocol?: 'mcp' | 'a2a';\n /**\n * Sender-generated key stable across retries of the same webhook event\n * (MCP envelope only — A2A webhooks do not carry this field). Use this\n * as the canonical dedup key; see `AsyncHandlerConfig.webhookDedup`.\n */\n idempotency_key?: string;\n /**\n * Buyer-side product property policy evaluation for completed get_products\n * webhooks. Present when the client filters, audits, or rejects a webhook\n * result before dispatching it to handlers.\n */\n productPropertyPolicy?: TaskResultMetadata['productPropertyPolicy'];\n /**\n * Buyer-side pricing-options enforcement summary for completed get_products\n * webhooks. Present when the client drops products that arrived without a\n * usable `pricing_options[]` array before dispatching to handlers.\n */\n productPricingPolicy?: TaskResultMetadata['productPricingPolicy'];\n}\n\n/**\n * Metadata for agent-initiated notifications\n * Same as WebhookMetadata but includes notification-specific fields\n */\nexport interface NotificationMetadata extends WebhookMetadata {\n /** Notification type */\n notification_type: 'scheduled' | 'final' | 'delayed';\n /** Sequence number of this notification */\n sequence_number?: number;\n /** When next notification is expected (not present for 'final') */\n next_expected_at?: string;\n}\n\n// Simple union-typed handlers for webhook status changes\nexport type GetProductsStatusChangeHandler = (\n response:\n | CanonicalGetProductsResponse\n | GetProductsAsyncSubmitted\n | GetProductsAsyncWorking\n | GetProductsAsyncInputRequired,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type CreateMediaBuyStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n | CreateMediaBuyResponse\n | CreateMediaBuyAsyncSubmitted\n | CreateMediaBuyAsyncWorking\n | CreateMediaBuyAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type UpdateMediaBuyStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n | UpdateMediaBuyResponse\n | UpdateMediaBuyAsyncSubmitted\n | UpdateMediaBuyAsyncWorking\n | UpdateMediaBuyAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type SyncCreativesStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n SyncCreativesResponse | SyncCreativesAsyncSubmitted | SyncCreativesAsyncWorking | SyncCreativesAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\n/**\n * Media buy delivery notification payload (PR #81)\n * Agent-initiated periodic reporting, not tied to any client operation\n */\nexport interface MediaBuyDeliveryNotification {\n /** Type of notification */\n notification_type: 'scheduled' | 'final' | 'delayed';\n /** Sequential notification number (starts at 1) */\n sequence_number?: number;\n /** When next notification is expected (omitted for 'final') */\n next_expected_at?: string;\n /** Reporting period for this notification */\n reporting_period?: {\n start: string;\n end: string;\n };\n /** Currency used for financial metrics */\n currency?: string;\n /** Array of media buy deliveries being reported */\n media_buy_deliveries?: Array<{\n media_buy_id: string;\n impressions?: number;\n clicks?: number;\n spend?: number;\n conversions?: number;\n [key: string]: any;\n }>;\n}\n\n/**\n * Activity event for logging/observability\n */\nexport interface Activity {\n type:\n | 'protocol_request'\n | 'protocol_response'\n | 'status_change'\n | 'webhook_received'\n | 'webhook_duplicate'\n | 'governance_check'\n | 'governance_outcome';\n operation_id: string;\n agent_id: string;\n context_id?: string;\n task_id?: string;\n task_type: string;\n status?: string;\n /**\n * Full AdCP response payload. Populated on `webhook_received` and\n * protocol/status events. INTENTIONALLY omitted on `webhook_duplicate`\n * to avoid re-logging potentially-sensitive data on every retry — the\n * originating `webhook_received` event already carries it. Correlate\n * the two via `idempotency_key`.\n */\n payload?: any;\n /**\n * Webhook idempotency key when available. Present on `webhook_received`\n * and `webhook_duplicate` events from MCP envelopes, enabling\n * correlation between a first delivery and its retry echoes.\n */\n idempotency_key?: string;\n timestamp: string;\n}\n\n/**\n * Configuration for async handler with typed callbacks\n */\nexport interface AsyncHandlerConfig {\n // AdCP tool status change handlers - called for ALL status changes (completed, failed, working, input-required, submitted)\n onGetProductsStatusChange?: GetProductsStatusChangeHandler;\n onListCreativeFormatsLegacyStatusChange?: (\n data: ListCreativeFormatsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onCreateMediaBuyStatusChange?: CreateMediaBuyStatusChangeHandler;\n onUpdateMediaBuyStatusChange?: UpdateMediaBuyStatusChangeHandler;\n onSyncCreativesStatusChange?: SyncCreativesStatusChangeHandler;\n onListCreativesStatusChange?: (\n response: CanonicalListCreativesResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onPreviewCreativeStatusChange?: (\n response: CanonicalCreativeResponse<PreviewCreativeResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n /** @deprecated Use `onPreviewCreativeStatusChange`. */\n onPreviewCreativeLegacyStatusChange?: (\n response: PreviewCreativeResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetMediaBuysStatusChange?: (\n response: CanonicalCreativeResponse<GetMediaBuysResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetMediaBuyDeliveryStatusChange?: (\n response: CanonicalCreativeResponse<GetMediaBuyDeliveryResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetCreativeDeliveryStatusChange?: (\n response: CanonicalCreativeResponse<GetCreativeDeliveryResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onProvidePerformanceFeedbackStatusChange?: (\n response: ProvidePerformanceFeedbackResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetSignalsStatusChange?: (response: GetSignalsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onActivateSignalStatusChange?: (response: ActivateSignalResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onBuildCreativeLegacyStatusChange?: (\n response: BuildCreativeResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListAccountsStatusChange?: (response: ListAccountsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSyncAccountsStatusChange?: (response: SyncAccountsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSyncAudiencesStatusChange?: (response: SyncAudiencesResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onCreatePropertyListStatusChange?: (\n response: CreatePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetPropertyListStatusChange?: (\n response: GetPropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onUpdatePropertyListStatusChange?: (\n response: UpdatePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListPropertyListsStatusChange?: (\n response: ListPropertyListsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onDeletePropertyListStatusChange?: (\n response: DeletePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListContentStandardsLegacyStatusChange?: (\n response: ListContentStandardsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetContentStandardsLegacyStatusChange?: (\n response: GetContentStandardsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onCalibrateContentLegacyStatusChange?: (\n response: CalibrateContentResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onValidateContentDeliveryLegacyStatusChange?: (\n response: ValidateContentDeliveryResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onSIGetOfferingStatusChange?: (response: SIGetOfferingResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSIInitiateSessionStatusChange?: (\n response: SIInitiateSessionResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onSISendMessageStatusChange?: (response: SISendMessageResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSITerminateSessionStatusChange?: (\n response: SITerminateSessionResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n\n // Fallback handler for any task status change\n onTaskStatusChange?: (response: any, metadata: WebhookMetadata) => void | Promise<void>;\n\n // Activity logging (low-level protocol events)\n onActivity?: (activity: Activity) => void | Promise<void>;\n\n /**\n * Receiver-side deduplication of webhook payloads by `idempotency_key`.\n *\n * AdCP webhooks use at-least-once delivery — publishers retry until they\n * see a 2xx, so the same event may arrive more than once. When configured,\n * the first delivery for a given `(agent_id, idempotency_key)` tuple\n * dispatches to handlers; subsequent deliveries are dropped and surface\n * as a `webhook_duplicate` activity.\n *\n * Reuses `IdempotencyBackend` from `@adcp/sdk/server` — you can share\n * the same backend across request-side and webhook-side dedup, or use a\n * dedicated one. Scope is per-agent so keys from different senders are\n * independent, matching the spec's \"scoped to authenticated sender\n * identity\" rule.\n *\n * If a payload arrives without `idempotency_key` (non-conforming sender,\n * or A2A transport which does not carry the field), dispatch proceeds\n * without dedup and a warning is logged.\n */\n webhookDedup?: {\n backend: IdempotencyBackend;\n /** Retention for dedup keys. Defaults to 86_400 (24h). */\n ttlSeconds?: number;\n };\n\n // Notification handlers (agent-initiated, no operation_id)\n onMediaBuyDeliveryNotification?: (\n notification: MediaBuyDeliveryNotification,\n metadata: NotificationMetadata\n ) => void | Promise<void>;\n}\n\n/**\n * Async handler class\n */\nexport class AsyncHandler {\n constructor(private config: AsyncHandlerConfig) {}\n\n /**\n * Handle incoming webhook payload (both task completions and notifications)\n */\n async handleWebhook({\n result,\n metadata,\n previewHandler,\n }: {\n result: AdCPAsyncResponseData | undefined;\n metadata: WebhookMetadata;\n /** Preserves the originating preview API across async completion. */\n previewHandler?: 'canonical' | 'legacy';\n }): Promise<void> {\n if (await this.isDuplicate(metadata)) {\n await this.emitActivity({\n type: 'webhook_duplicate',\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n idempotency_key: metadata.idempotency_key,\n timestamp: metadata.timestamp,\n });\n return;\n }\n\n // Emit activity\n await this.emitActivity({\n type: 'webhook_received',\n idempotency_key: metadata.idempotency_key,\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n payload: metadata.rawHTTPPayload?.result ?? result,\n timestamp: metadata.timestamp,\n });\n\n // Check if this is a notification (media_buy_delivery with notification_type)\n // Notifications are treated like status updates for an ongoing \"get delivery report\" operation\n // The operation_id (from URL) groups all reports for the same agent + month\n if (\n metadata.task_type === 'media_buy_delivery' &&\n result &&\n typeof result === 'object' &&\n 'notification_type' in result\n ) {\n const notificationPayload = result as unknown as MediaBuyDeliveryNotification;\n\n // Build notification metadata\n // operation_id comes from webhook URL and was lazily generated from agent + month\n const notificationMetadata: NotificationMetadata = {\n ...metadata,\n notification_type: notificationPayload.notification_type,\n sequence_number: notificationPayload.sequence_number,\n next_expected_at: notificationPayload.next_expected_at,\n };\n\n await this.config.onMediaBuyDeliveryNotification?.(notificationPayload, notificationMetadata);\n return;\n }\n\n // All status changes go through the specific handler\n // The handler receives metadata with status and can act accordingly\n await this.handleCompletion(metadata.task_type, result, metadata, previewHandler);\n }\n\n /**\n * Handle task completion - route to specific handler\n */\n private async handleCompletion(\n taskType: string,\n result: AdCPAsyncResponseData | undefined,\n metadata: WebhookMetadata,\n previewHandler?: 'canonical' | 'legacy'\n ): Promise<void> {\n let handler: ((result: any, metadata: any) => void | Promise<void>) | undefined;\n\n // Route to specific handler based on task type\n switch (taskType) {\n case 'get_products':\n handler = this.config.onGetProductsStatusChange;\n break;\n\n case 'list_creative_formats':\n handler = this.config.onListCreativeFormatsLegacyStatusChange;\n break;\n\n case 'preview_creative':\n handler =\n previewHandler === 'legacy'\n ? (this.config.onPreviewCreativeLegacyStatusChange ?? this.config.onPreviewCreativeStatusChange)\n : (this.config.onPreviewCreativeStatusChange ?? this.config.onPreviewCreativeLegacyStatusChange);\n break;\n\n case 'build_creative':\n handler = this.config.onBuildCreativeLegacyStatusChange;\n break;\n\n case 'create_media_buy':\n handler = this.config.onCreateMediaBuyStatusChange;\n break;\n\n case 'update_media_buy':\n handler = this.config.onUpdateMediaBuyStatusChange;\n break;\n\n case 'sync_creatives':\n handler = this.config.onSyncCreativesStatusChange;\n break;\n\n case 'list_creatives':\n handler = this.config.onListCreativesStatusChange;\n break;\n\n case 'get_media_buys':\n handler = this.config.onGetMediaBuysStatusChange;\n break;\n\n case 'get_media_buy_delivery':\n handler = this.config.onGetMediaBuyDeliveryStatusChange;\n break;\n\n case 'get_creative_delivery':\n handler = this.config.onGetCreativeDeliveryStatusChange;\n break;\n\n case 'provide_performance_feedback':\n handler = this.config.onProvidePerformanceFeedbackStatusChange;\n break;\n\n case 'get_signals':\n handler = this.config.onGetSignalsStatusChange;\n break;\n\n case 'activate_signal':\n handler = this.config.onActivateSignalStatusChange;\n break;\n\n case 'list_content_standards':\n handler = this.config.onListContentStandardsLegacyStatusChange;\n break;\n\n case 'get_content_standards':\n handler = this.config.onGetContentStandardsLegacyStatusChange;\n break;\n\n case 'calibrate_content':\n handler = this.config.onCalibrateContentLegacyStatusChange;\n break;\n\n case 'validate_content_delivery':\n handler = this.config.onValidateContentDeliveryLegacyStatusChange;\n break;\n }\n\n // Call specific handler if configured, otherwise fallback to generic handler\n const handlerToCall = handler || this.config.onTaskStatusChange;\n\n if (handlerToCall) {\n try {\n await handlerToCall(result, metadata);\n } catch (error) {\n // Log error but don't crash webhook processing\n console.error(\n `Error in handler for task ${taskType}:`,\n error instanceof Error ? error.message : 'unknown error'\n );\n }\n }\n }\n\n /**\n * Emit activity event\n */\n private async emitActivity(activity: Activity): Promise<void> {\n await this.config.onActivity?.(activity);\n }\n\n /**\n * Claim the webhook for processing, returning true if the event has\n * already been delivered for this `(agent_id, idempotency_key)` tuple.\n *\n * Uses `IdempotencyBackend.putIfAbsent` so concurrent retries race on a\n * single claim: exactly one caller gets `true` and proceeds, the rest\n * observe the existing entry and return.\n */\n private async isDuplicate(metadata: WebhookMetadata): Promise<boolean> {\n const dedup = this.config.webhookDedup;\n if (!dedup) return false;\n\n const key = metadata.idempotency_key;\n if (!key || !IDEMPOTENCY_KEY_PATTERN.test(key)) {\n // No valid key. MCP senders MUST emit one per AdCP 3.0; A2A\n // transport doesn't carry the field at all. Warn MCP (so\n // integrators notice non-conforming publishers) and stay quiet\n // for A2A (expected and unactionable).\n if (metadata.protocol !== 'a2a') {\n console.warn(\n `[AdCP] webhookDedup enabled but webhook from agent=${metadata.agent_id} task=${metadata.task_id} has ${\n key ? 'an invalid' : 'no'\n } idempotency_key. Expected format: ${IDEMPOTENCY_KEY_PATTERN.source}. ` +\n 'Dispatching without dedup — duplicate deliveries from this sender will re-trigger handlers. ' +\n 'See docs/guides/PUSH-NOTIFICATION-CONFIG.md#deduplication'\n );\n }\n return false;\n }\n\n const ttlSeconds = dedup.ttlSeconds ?? 86_400;\n // Reserved prefix `adcp\\u001fwebhook\\u001fv1\\u001f...` namespaces the\n // claim so webhook dedup entries can coexist with request-side\n // idempotency entries in a shared backend — a request-side principal\n // can never produce a scoped key with this prefix because the\n // principal regex excludes U+001F.\n const scopedKey = `adcp\\u001fwebhook\\u001fv1\\u001f${metadata.agent_id}\\u001f${key}`;\n const expiresAt = Math.floor(Date.now() / 1000) + ttlSeconds;\n\n const claimed = await dedup.backend.putIfAbsent(scopedKey, {\n payloadHash: '',\n response: null,\n expiresAt,\n });\n return !claimed;\n }\n}\n\n// AdCP spec: `^[A-Za-z0-9_.:-]{16,255}$`. Any key not matching this\n// pattern is malformed — treat as missing rather than forming a scoped\n// key from arbitrary sender-supplied bytes.\nconst IDEMPOTENCY_KEY_PATTERN = /^[A-Za-z0-9_.:-]{16,255}$/;\n\n/**\n * Factory function to create async handler\n */\nexport function createAsyncHandler(config: AsyncHandlerConfig): AsyncHandler {\n return new AsyncHandler(config);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/core/AsyncHandler.ts"],"sourcesContent":["/**\n * Structured async handler for AdCP webhook responses\n * Provides type-safe callbacks for each AdCP tool completion\n */\n\nimport type { IdempotencyBackend } from '../server/idempotency/store';\nimport type {\n ListCreativeFormatsResponse,\n ListCreativesResponse,\n PreviewCreativeResponse,\n BuildCreativeResponse,\n GetMediaBuysResponse,\n GetMediaBuyDeliveryResponse,\n GetCreativeDeliveryResponse,\n ProvidePerformanceFeedbackResponse,\n GetSignalsResponse,\n ActivateSignalResponse,\n ListAccountsResponse,\n SyncAccountsResponse,\n SyncAudiencesResponse,\n CreatePropertyListResponse,\n GetPropertyListResponse,\n UpdatePropertyListResponse,\n ListPropertyListsResponse,\n DeletePropertyListResponse,\n ListContentStandardsResponse,\n GetContentStandardsResponse,\n CalibrateContentResponse,\n ValidateContentDeliveryResponse,\n SIGetOfferingResponse,\n SIInitiateSessionResponse,\n SISendMessageResponse,\n SITerminateSessionResponse,\n CreateMediaBuyResponse,\n GetProductsResponse,\n UpdateMediaBuyResponse,\n SyncCreativesResponse,\n} from '../types/tools.generated';\n\nimport type {\n AdCPAsyncResponseData,\n CreateMediaBuyAsyncInputRequired,\n CreateMediaBuyAsyncSubmitted,\n CreateMediaBuyAsyncWorking,\n GetProductsAsyncInputRequired,\n GetProductsAsyncSubmitted,\n GetProductsAsyncWorking,\n SyncCreativesAsyncInputRequired,\n SyncCreativesAsyncSubmitted,\n SyncCreativesAsyncWorking,\n TaskType,\n UpdateMediaBuyAsyncInputRequired,\n UpdateMediaBuyAsyncSubmitted,\n UpdateMediaBuyAsyncWorking,\n} from '../types/core.generated';\nimport type { TaskResultMetadata } from './ConversationTypes';\nimport {\n CreateMediaBuyAsyncResponseData,\n GetProductsAsyncResponseData,\n SyncCreativesAsyncResponseData,\n UpdateMediaBuyAsyncResponseData,\n} from '../types';\nimport type {\n CanonicalCreativeResponse,\n CanonicalGetProductsResponse,\n CanonicalListCreativesResponse,\n} from '../v2/projection/creative-delivery';\n\n/**\n * Metadata provided with webhook responses\n */\nexport interface WebhookMetadata {\n /** Client-provided operation ID */\n operation_id: string;\n /** Server's task ID */\n task_id: string;\n /** Agent ID */\n agent_id: string;\n /** Task type/tool name */\n task_type: string;\n /** Task status (completed, failed, needs_input, working, etc) */\n status: TaskResultMetadata['status'] | 'unknown';\n /** Server's context ID */\n context_id?: string;\n /** Human-readable context about the status change */\n message?: string;\n /** Timestamp */\n timestamp: string;\n /** raw HTTP payload */\n rawHTTPPayload?: any;\n /**\n * Wire protocol that delivered this webhook. Useful for handler code\n * that needs to treat MCP and A2A transports differently (e.g.,\n * `idempotency_key` is only present on MCP payloads).\n */\n protocol?: 'mcp' | 'a2a';\n /**\n * Sender-generated key stable across retries of the same webhook event\n * (MCP envelope only — A2A webhooks do not carry this field). Use this\n * as the canonical dedup key; see `AsyncHandlerConfig.webhookDedup`.\n */\n idempotency_key?: string;\n /**\n * Buyer-side product property policy evaluation for completed get_products\n * webhooks. Present when the client filters, audits, or rejects a webhook\n * result before dispatching it to handlers.\n */\n productPropertyPolicy?: TaskResultMetadata['productPropertyPolicy'];\n /**\n * Buyer-side pricing-options enforcement summary for completed get_products\n * webhooks. Present when the client drops products that arrived without a\n * usable `pricing_options[]` array before dispatching to handlers.\n */\n productPricingPolicy?: TaskResultMetadata['productPricingPolicy'];\n}\n\n/**\n * Metadata for agent-initiated notifications\n * Same as WebhookMetadata but includes notification-specific fields\n */\nexport interface NotificationMetadata extends WebhookMetadata {\n /** Notification type */\n notification_type: 'scheduled' | 'final' | 'delayed';\n /** Sequence number of this notification */\n sequence_number?: number;\n /** When next notification is expected (not present for 'final') */\n next_expected_at?: string;\n}\n\n// Simple union-typed handlers for webhook status changes\nexport type GetProductsStatusChangeHandler = (\n response:\n | CanonicalGetProductsResponse\n | GetProductsAsyncSubmitted\n | GetProductsAsyncWorking\n | GetProductsAsyncInputRequired,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type CreateMediaBuyStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n | CreateMediaBuyResponse\n | CreateMediaBuyAsyncSubmitted\n | CreateMediaBuyAsyncWorking\n | CreateMediaBuyAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type UpdateMediaBuyStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n | UpdateMediaBuyResponse\n | UpdateMediaBuyAsyncSubmitted\n | UpdateMediaBuyAsyncWorking\n | UpdateMediaBuyAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type SyncCreativesStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n SyncCreativesResponse | SyncCreativesAsyncSubmitted | SyncCreativesAsyncWorking | SyncCreativesAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\n/**\n * Media buy delivery notification payload (PR #81)\n * Agent-initiated periodic reporting, not tied to any client operation\n */\nexport interface MediaBuyDeliveryNotification {\n /** Type of notification */\n notification_type: 'scheduled' | 'final' | 'delayed';\n /** Sequential notification number (starts at 1) */\n sequence_number?: number;\n /** When next notification is expected (omitted for 'final') */\n next_expected_at?: string;\n /** Reporting period for this notification */\n reporting_period?: {\n start: string;\n end: string;\n };\n /** Currency used for financial metrics */\n currency?: string;\n /** Array of media buy deliveries being reported */\n media_buy_deliveries?: Array<{\n media_buy_id: string;\n impressions?: number;\n clicks?: number;\n spend?: number;\n conversions?: number;\n [key: string]: any;\n }>;\n}\n\n/**\n * Activity event for logging/observability\n */\nexport interface Activity {\n type:\n | 'protocol_request'\n | 'protocol_response'\n | 'status_change'\n | 'webhook_received'\n | 'webhook_duplicate'\n | 'governance_check'\n | 'governance_outcome';\n operation_id: string;\n agent_id: string;\n context_id?: string;\n task_id?: string;\n task_type: string;\n status?: string;\n /**\n * Full AdCP response payload. Populated on `webhook_received` and\n * protocol/status events. INTENTIONALLY omitted on `webhook_duplicate`\n * to avoid re-logging potentially-sensitive data on every retry — the\n * originating `webhook_received` event already carries it. Correlate\n * the two via `idempotency_key`.\n */\n payload?: any;\n /**\n * Webhook idempotency key when available. Present on `webhook_received`\n * and `webhook_duplicate` events from MCP envelopes, enabling\n * correlation between a first delivery and its retry echoes.\n */\n idempotency_key?: string;\n timestamp: string;\n}\n\n/**\n * Configuration for async handler with typed callbacks\n */\nexport interface AsyncHandlerConfig {\n // AdCP tool status change handlers - called for ALL status changes (completed, failed, working, input-required, submitted)\n onGetProductsStatusChange?: GetProductsStatusChangeHandler;\n onListCreativeFormatsLegacyStatusChange?: (\n data: ListCreativeFormatsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onCreateMediaBuyStatusChange?: CreateMediaBuyStatusChangeHandler;\n onUpdateMediaBuyStatusChange?: UpdateMediaBuyStatusChangeHandler;\n onSyncCreativesStatusChange?: SyncCreativesStatusChangeHandler;\n onListCreativesStatusChange?: (\n response: CanonicalListCreativesResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onPreviewCreativeStatusChange?: (\n response: CanonicalCreativeResponse<PreviewCreativeResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n /** @deprecated Use `onPreviewCreativeStatusChange`. */\n onPreviewCreativeLegacyStatusChange?: (\n response: PreviewCreativeResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetMediaBuysStatusChange?: (\n response: CanonicalCreativeResponse<GetMediaBuysResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetMediaBuyDeliveryStatusChange?: (\n response: CanonicalCreativeResponse<GetMediaBuyDeliveryResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetCreativeDeliveryStatusChange?: (\n response: CanonicalCreativeResponse<GetCreativeDeliveryResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onProvidePerformanceFeedbackStatusChange?: (\n response: ProvidePerformanceFeedbackResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetSignalsStatusChange?: (response: GetSignalsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onActivateSignalStatusChange?: (response: ActivateSignalResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onBuildCreativeLegacyStatusChange?: (\n response: BuildCreativeResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListAccountsStatusChange?: (response: ListAccountsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSyncAccountsStatusChange?: (response: SyncAccountsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSyncAudiencesStatusChange?: (response: SyncAudiencesResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onCreatePropertyListStatusChange?: (\n response: CreatePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetPropertyListStatusChange?: (\n response: GetPropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onUpdatePropertyListStatusChange?: (\n response: UpdatePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListPropertyListsStatusChange?: (\n response: ListPropertyListsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onDeletePropertyListStatusChange?: (\n response: DeletePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListContentStandardsLegacyStatusChange?: (\n response: ListContentStandardsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetContentStandardsLegacyStatusChange?: (\n response: GetContentStandardsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onCalibrateContentLegacyStatusChange?: (\n response: CalibrateContentResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onValidateContentDeliveryLegacyStatusChange?: (\n response: ValidateContentDeliveryResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onSIGetOfferingStatusChange?: (response: SIGetOfferingResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSIInitiateSessionStatusChange?: (\n response: SIInitiateSessionResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onSISendMessageStatusChange?: (response: SISendMessageResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSITerminateSessionStatusChange?: (\n response: SITerminateSessionResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n\n // Fallback handler for any task status change\n onTaskStatusChange?: (response: any, metadata: WebhookMetadata) => void | Promise<void>;\n\n // Activity logging (low-level protocol events)\n onActivity?: (activity: Activity) => void | Promise<void>;\n\n /**\n * Receiver-side deduplication of webhook payloads by `idempotency_key`.\n *\n * AdCP webhooks use at-least-once delivery — publishers retry until they\n * see a 2xx, so the same event may arrive more than once. When configured,\n * the first delivery for a given `(agent_id, idempotency_key)` tuple\n * dispatches to handlers; subsequent deliveries are dropped and surface\n * as a `webhook_duplicate` activity.\n *\n * Reuses `IdempotencyBackend` from `@adcp/sdk/server` — you can share\n * the same backend across request-side and webhook-side dedup, or use a\n * dedicated one. Scope is per-agent so keys from different senders are\n * independent, matching the spec's \"scoped to authenticated sender\n * identity\" rule.\n *\n * If a payload arrives without `idempotency_key` (non-conforming sender,\n * or A2A transport which does not carry the field), dispatch proceeds\n * without dedup and a warning is logged.\n */\n webhookDedup?: {\n backend: IdempotencyBackend;\n /** Retention for dedup keys. Defaults to 86_400 (24h). */\n ttlSeconds?: number;\n };\n\n // Notification handlers (agent-initiated, no operation_id)\n onMediaBuyDeliveryNotification?: (\n notification: MediaBuyDeliveryNotification,\n metadata: NotificationMetadata\n ) => void | Promise<void>;\n}\n\n/**\n * Async handler class\n */\nexport class AsyncHandler {\n constructor(private config: AsyncHandlerConfig) {}\n\n /** Emit duplicate observability without re-running public result handlers. */\n async handleDurableSettlementDuplicate(metadata: WebhookMetadata): Promise<void> {\n await this.emitActivity({\n type: 'webhook_duplicate',\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n idempotency_key: metadata.idempotency_key,\n timestamp: metadata.timestamp,\n });\n }\n\n /**\n * Handle incoming webhook payload (both task completions and notifications)\n */\n async handleWebhook({\n result,\n metadata,\n previewHandler,\n }: {\n result: AdCPAsyncResponseData | undefined;\n metadata: WebhookMetadata;\n /** Preserves the originating preview API across async completion. */\n previewHandler?: 'canonical' | 'legacy';\n }): Promise<void> {\n if (await this.isDuplicate(metadata)) {\n await this.emitActivity({\n type: 'webhook_duplicate',\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n idempotency_key: metadata.idempotency_key,\n timestamp: metadata.timestamp,\n });\n return;\n }\n\n // Emit activity\n await this.emitActivity({\n type: 'webhook_received',\n idempotency_key: metadata.idempotency_key,\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n payload: result,\n timestamp: metadata.timestamp,\n });\n\n // Check if this is a notification (media_buy_delivery with notification_type)\n // Notifications are treated like status updates for an ongoing \"get delivery report\" operation\n // The operation_id (from URL) groups all reports for the same agent + month\n if (\n metadata.task_type === 'media_buy_delivery' &&\n result &&\n typeof result === 'object' &&\n 'notification_type' in result\n ) {\n const notificationPayload = result as unknown as MediaBuyDeliveryNotification;\n\n // Build notification metadata\n // operation_id comes from webhook URL and was lazily generated from agent + month\n const notificationMetadata: NotificationMetadata = {\n ...metadata,\n notification_type: notificationPayload.notification_type,\n sequence_number: notificationPayload.sequence_number,\n next_expected_at: notificationPayload.next_expected_at,\n };\n\n await this.config.onMediaBuyDeliveryNotification?.(notificationPayload, notificationMetadata);\n return;\n }\n\n // All status changes go through the specific handler\n // The handler receives metadata with status and can act accordingly\n await this.handleCompletion(metadata.task_type, result, metadata, previewHandler);\n }\n\n /**\n * Handle task completion - route to specific handler\n */\n private async handleCompletion(\n taskType: string,\n result: AdCPAsyncResponseData | undefined,\n metadata: WebhookMetadata,\n previewHandler?: 'canonical' | 'legacy'\n ): Promise<void> {\n let handler: ((result: any, metadata: any) => void | Promise<void>) | undefined;\n\n // Route to specific handler based on task type\n switch (taskType) {\n case 'get_products':\n handler = this.config.onGetProductsStatusChange;\n break;\n\n case 'list_creative_formats':\n handler = this.config.onListCreativeFormatsLegacyStatusChange;\n break;\n\n case 'preview_creative':\n handler =\n previewHandler === 'legacy'\n ? (this.config.onPreviewCreativeLegacyStatusChange ?? this.config.onPreviewCreativeStatusChange)\n : (this.config.onPreviewCreativeStatusChange ?? this.config.onPreviewCreativeLegacyStatusChange);\n break;\n\n case 'build_creative':\n handler = this.config.onBuildCreativeLegacyStatusChange;\n break;\n\n case 'create_media_buy':\n handler = this.config.onCreateMediaBuyStatusChange;\n break;\n\n case 'update_media_buy':\n handler = this.config.onUpdateMediaBuyStatusChange;\n break;\n\n case 'sync_creatives':\n handler = this.config.onSyncCreativesStatusChange;\n break;\n\n case 'list_creatives':\n handler = this.config.onListCreativesStatusChange;\n break;\n\n case 'get_media_buys':\n handler = this.config.onGetMediaBuysStatusChange;\n break;\n\n case 'get_media_buy_delivery':\n handler = this.config.onGetMediaBuyDeliveryStatusChange;\n break;\n\n case 'get_creative_delivery':\n handler = this.config.onGetCreativeDeliveryStatusChange;\n break;\n\n case 'provide_performance_feedback':\n handler = this.config.onProvidePerformanceFeedbackStatusChange;\n break;\n\n case 'get_signals':\n handler = this.config.onGetSignalsStatusChange;\n break;\n\n case 'activate_signal':\n handler = this.config.onActivateSignalStatusChange;\n break;\n\n case 'list_content_standards':\n handler = this.config.onListContentStandardsLegacyStatusChange;\n break;\n\n case 'get_content_standards':\n handler = this.config.onGetContentStandardsLegacyStatusChange;\n break;\n\n case 'calibrate_content':\n handler = this.config.onCalibrateContentLegacyStatusChange;\n break;\n\n case 'validate_content_delivery':\n handler = this.config.onValidateContentDeliveryLegacyStatusChange;\n break;\n }\n\n // Call specific handler if configured, otherwise fallback to generic handler\n const handlerToCall = handler || this.config.onTaskStatusChange;\n\n if (handlerToCall) {\n try {\n await handlerToCall(result, metadata);\n } catch (error) {\n // Log error but don't crash webhook processing\n console.error(\n `Error in handler for task ${taskType}:`,\n error instanceof Error ? error.message : 'unknown error'\n );\n }\n }\n }\n\n /**\n * Emit activity event\n */\n private async emitActivity(activity: Activity): Promise<void> {\n await this.config.onActivity?.(activity);\n }\n\n /**\n * Claim the webhook for processing, returning true if the event has\n * already been delivered for this `(agent_id, idempotency_key)` tuple.\n *\n * Uses `IdempotencyBackend.putIfAbsent` so concurrent retries race on a\n * single claim: exactly one caller gets `true` and proceeds, the rest\n * observe the existing entry and return.\n */\n private async isDuplicate(metadata: WebhookMetadata): Promise<boolean> {\n const dedup = this.config.webhookDedup;\n if (!dedup) return false;\n\n const key = metadata.idempotency_key;\n if (!key || !IDEMPOTENCY_KEY_PATTERN.test(key)) {\n // No valid key. MCP senders MUST emit one per AdCP 3.0; A2A\n // transport doesn't carry the field at all. Warn MCP (so\n // integrators notice non-conforming publishers) and stay quiet\n // for A2A (expected and unactionable).\n if (metadata.protocol !== 'a2a') {\n console.warn(\n `[AdCP] webhookDedup enabled but webhook from agent=${metadata.agent_id} task=${metadata.task_id} has ${\n key ? 'an invalid' : 'no'\n } idempotency_key. Expected format: ${IDEMPOTENCY_KEY_PATTERN.source}. ` +\n 'Dispatching without dedup — duplicate deliveries from this sender will re-trigger handlers. ' +\n 'See docs/guides/PUSH-NOTIFICATION-CONFIG.md#deduplication'\n );\n }\n return false;\n }\n\n const ttlSeconds = dedup.ttlSeconds ?? 86_400;\n // Reserved prefix `adcp\\u001fwebhook\\u001fv1\\u001f...` namespaces the\n // claim so webhook dedup entries can coexist with request-side\n // idempotency entries in a shared backend — a request-side principal\n // can never produce a scoped key with this prefix because the\n // principal regex excludes U+001F.\n const scopedKey = `adcp\\u001fwebhook\\u001fv1\\u001f${metadata.agent_id}\\u001f${key}`;\n const expiresAt = Math.floor(Date.now() / 1000) + ttlSeconds;\n\n const claimed = await dedup.backend.putIfAbsent(scopedKey, {\n payloadHash: '',\n response: null,\n expiresAt,\n });\n return !claimed;\n }\n}\n\n// AdCP spec: `^[A-Za-z0-9_.:-]{16,255}$`. Any key not matching this\n// pattern is malformed — treat as missing rather than forming a scoped\n// key from arbitrary sender-supplied bytes.\nconst IDEMPOTENCY_KEY_PATTERN = /^[A-Za-z0-9_.:-]{16,255}$/;\n\n/**\n * Factory function to create async handler\n */\nexport function createAsyncHandler(config: AsyncHandlerConfig): AsyncHandler {\n return new AsyncHandler(config);\n}\n"],"mappings":"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","names":[]}
@@ -3,6 +3,20 @@ class AsyncHandler {
3
3
  this.config = config;
4
4
  }
5
5
  config;
6
+ /** Emit duplicate observability without re-running public result handlers. */
7
+ async handleDurableSettlementDuplicate(metadata) {
8
+ await this.emitActivity({
9
+ type: "webhook_duplicate",
10
+ operation_id: metadata.operation_id,
11
+ agent_id: metadata.agent_id,
12
+ context_id: metadata.context_id,
13
+ task_id: metadata.task_id,
14
+ task_type: metadata.task_type,
15
+ status: metadata.status,
16
+ idempotency_key: metadata.idempotency_key,
17
+ timestamp: metadata.timestamp
18
+ });
19
+ }
6
20
  /**
7
21
  * Handle incoming webhook payload (both task completions and notifications)
8
22
  */
@@ -34,7 +48,7 @@ class AsyncHandler {
34
48
  task_id: metadata.task_id,
35
49
  task_type: metadata.task_type,
36
50
  status: metadata.status,
37
- payload: metadata.rawHTTPPayload?.result ?? result,
51
+ payload: result,
38
52
  timestamp: metadata.timestamp
39
53
  });
40
54
  if (metadata.task_type === "media_buy_delivery" && result && typeof result === "object" && "notification_type" in result) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/core/AsyncHandler.ts"],"sourcesContent":["/**\n * Structured async handler for AdCP webhook responses\n * Provides type-safe callbacks for each AdCP tool completion\n */\n\nimport type { IdempotencyBackend } from '../server/idempotency/store';\nimport type {\n ListCreativeFormatsResponse,\n ListCreativesResponse,\n PreviewCreativeResponse,\n BuildCreativeResponse,\n GetMediaBuysResponse,\n GetMediaBuyDeliveryResponse,\n GetCreativeDeliveryResponse,\n ProvidePerformanceFeedbackResponse,\n GetSignalsResponse,\n ActivateSignalResponse,\n ListAccountsResponse,\n SyncAccountsResponse,\n SyncAudiencesResponse,\n CreatePropertyListResponse,\n GetPropertyListResponse,\n UpdatePropertyListResponse,\n ListPropertyListsResponse,\n DeletePropertyListResponse,\n ListContentStandardsResponse,\n GetContentStandardsResponse,\n CalibrateContentResponse,\n ValidateContentDeliveryResponse,\n SIGetOfferingResponse,\n SIInitiateSessionResponse,\n SISendMessageResponse,\n SITerminateSessionResponse,\n CreateMediaBuyResponse,\n GetProductsResponse,\n UpdateMediaBuyResponse,\n SyncCreativesResponse,\n} from '../types/tools.generated';\n\nimport type {\n AdCPAsyncResponseData,\n CreateMediaBuyAsyncInputRequired,\n CreateMediaBuyAsyncSubmitted,\n CreateMediaBuyAsyncWorking,\n GetProductsAsyncInputRequired,\n GetProductsAsyncSubmitted,\n GetProductsAsyncWorking,\n SyncCreativesAsyncInputRequired,\n SyncCreativesAsyncSubmitted,\n SyncCreativesAsyncWorking,\n TaskStatus,\n TaskType,\n UpdateMediaBuyAsyncInputRequired,\n UpdateMediaBuyAsyncSubmitted,\n UpdateMediaBuyAsyncWorking,\n} from '../types/core.generated';\nimport type { TaskResultMetadata } from './ConversationTypes';\nimport {\n CreateMediaBuyAsyncResponseData,\n GetProductsAsyncResponseData,\n SyncCreativesAsyncResponseData,\n UpdateMediaBuyAsyncResponseData,\n} from '../types';\nimport type {\n CanonicalCreativeResponse,\n CanonicalGetProductsResponse,\n CanonicalListCreativesResponse,\n} from '../v2/projection/creative-delivery';\n\n/**\n * Metadata provided with webhook responses\n */\nexport interface WebhookMetadata {\n /** Client-provided operation ID */\n operation_id: string;\n /** Server's task ID */\n task_id: string;\n /** Agent ID */\n agent_id: string;\n /** Task type/tool name */\n task_type: string;\n /** Task status (completed, failed, needs_input, working, etc) */\n status: TaskStatus;\n /** Server's context ID */\n context_id?: string;\n /** Human-readable context about the status change */\n message?: string;\n /** Timestamp */\n timestamp: string;\n /** raw HTTP payload */\n rawHTTPPayload?: any;\n /**\n * Wire protocol that delivered this webhook. Useful for handler code\n * that needs to treat MCP and A2A transports differently (e.g.,\n * `idempotency_key` is only present on MCP payloads).\n */\n protocol?: 'mcp' | 'a2a';\n /**\n * Sender-generated key stable across retries of the same webhook event\n * (MCP envelope only — A2A webhooks do not carry this field). Use this\n * as the canonical dedup key; see `AsyncHandlerConfig.webhookDedup`.\n */\n idempotency_key?: string;\n /**\n * Buyer-side product property policy evaluation for completed get_products\n * webhooks. Present when the client filters, audits, or rejects a webhook\n * result before dispatching it to handlers.\n */\n productPropertyPolicy?: TaskResultMetadata['productPropertyPolicy'];\n /**\n * Buyer-side pricing-options enforcement summary for completed get_products\n * webhooks. Present when the client drops products that arrived without a\n * usable `pricing_options[]` array before dispatching to handlers.\n */\n productPricingPolicy?: TaskResultMetadata['productPricingPolicy'];\n}\n\n/**\n * Metadata for agent-initiated notifications\n * Same as WebhookMetadata but includes notification-specific fields\n */\nexport interface NotificationMetadata extends WebhookMetadata {\n /** Notification type */\n notification_type: 'scheduled' | 'final' | 'delayed';\n /** Sequence number of this notification */\n sequence_number?: number;\n /** When next notification is expected (not present for 'final') */\n next_expected_at?: string;\n}\n\n// Simple union-typed handlers for webhook status changes\nexport type GetProductsStatusChangeHandler = (\n response:\n | CanonicalGetProductsResponse\n | GetProductsAsyncSubmitted\n | GetProductsAsyncWorking\n | GetProductsAsyncInputRequired,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type CreateMediaBuyStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n | CreateMediaBuyResponse\n | CreateMediaBuyAsyncSubmitted\n | CreateMediaBuyAsyncWorking\n | CreateMediaBuyAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type UpdateMediaBuyStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n | UpdateMediaBuyResponse\n | UpdateMediaBuyAsyncSubmitted\n | UpdateMediaBuyAsyncWorking\n | UpdateMediaBuyAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type SyncCreativesStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n SyncCreativesResponse | SyncCreativesAsyncSubmitted | SyncCreativesAsyncWorking | SyncCreativesAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\n/**\n * Media buy delivery notification payload (PR #81)\n * Agent-initiated periodic reporting, not tied to any client operation\n */\nexport interface MediaBuyDeliveryNotification {\n /** Type of notification */\n notification_type: 'scheduled' | 'final' | 'delayed';\n /** Sequential notification number (starts at 1) */\n sequence_number?: number;\n /** When next notification is expected (omitted for 'final') */\n next_expected_at?: string;\n /** Reporting period for this notification */\n reporting_period?: {\n start: string;\n end: string;\n };\n /** Currency used for financial metrics */\n currency?: string;\n /** Array of media buy deliveries being reported */\n media_buy_deliveries?: Array<{\n media_buy_id: string;\n impressions?: number;\n clicks?: number;\n spend?: number;\n conversions?: number;\n [key: string]: any;\n }>;\n}\n\n/**\n * Activity event for logging/observability\n */\nexport interface Activity {\n type:\n | 'protocol_request'\n | 'protocol_response'\n | 'status_change'\n | 'webhook_received'\n | 'webhook_duplicate'\n | 'governance_check'\n | 'governance_outcome';\n operation_id: string;\n agent_id: string;\n context_id?: string;\n task_id?: string;\n task_type: string;\n status?: string;\n /**\n * Full AdCP response payload. Populated on `webhook_received` and\n * protocol/status events. INTENTIONALLY omitted on `webhook_duplicate`\n * to avoid re-logging potentially-sensitive data on every retry — the\n * originating `webhook_received` event already carries it. Correlate\n * the two via `idempotency_key`.\n */\n payload?: any;\n /**\n * Webhook idempotency key when available. Present on `webhook_received`\n * and `webhook_duplicate` events from MCP envelopes, enabling\n * correlation between a first delivery and its retry echoes.\n */\n idempotency_key?: string;\n timestamp: string;\n}\n\n/**\n * Configuration for async handler with typed callbacks\n */\nexport interface AsyncHandlerConfig {\n // AdCP tool status change handlers - called for ALL status changes (completed, failed, working, input-required, submitted)\n onGetProductsStatusChange?: GetProductsStatusChangeHandler;\n onListCreativeFormatsLegacyStatusChange?: (\n data: ListCreativeFormatsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onCreateMediaBuyStatusChange?: CreateMediaBuyStatusChangeHandler;\n onUpdateMediaBuyStatusChange?: UpdateMediaBuyStatusChangeHandler;\n onSyncCreativesStatusChange?: SyncCreativesStatusChangeHandler;\n onListCreativesStatusChange?: (\n response: CanonicalListCreativesResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onPreviewCreativeStatusChange?: (\n response: CanonicalCreativeResponse<PreviewCreativeResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n /** @deprecated Use `onPreviewCreativeStatusChange`. */\n onPreviewCreativeLegacyStatusChange?: (\n response: PreviewCreativeResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetMediaBuysStatusChange?: (\n response: CanonicalCreativeResponse<GetMediaBuysResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetMediaBuyDeliveryStatusChange?: (\n response: CanonicalCreativeResponse<GetMediaBuyDeliveryResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetCreativeDeliveryStatusChange?: (\n response: CanonicalCreativeResponse<GetCreativeDeliveryResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onProvidePerformanceFeedbackStatusChange?: (\n response: ProvidePerformanceFeedbackResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetSignalsStatusChange?: (response: GetSignalsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onActivateSignalStatusChange?: (response: ActivateSignalResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onBuildCreativeLegacyStatusChange?: (\n response: BuildCreativeResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListAccountsStatusChange?: (response: ListAccountsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSyncAccountsStatusChange?: (response: SyncAccountsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSyncAudiencesStatusChange?: (response: SyncAudiencesResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onCreatePropertyListStatusChange?: (\n response: CreatePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetPropertyListStatusChange?: (\n response: GetPropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onUpdatePropertyListStatusChange?: (\n response: UpdatePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListPropertyListsStatusChange?: (\n response: ListPropertyListsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onDeletePropertyListStatusChange?: (\n response: DeletePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListContentStandardsLegacyStatusChange?: (\n response: ListContentStandardsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetContentStandardsLegacyStatusChange?: (\n response: GetContentStandardsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onCalibrateContentLegacyStatusChange?: (\n response: CalibrateContentResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onValidateContentDeliveryLegacyStatusChange?: (\n response: ValidateContentDeliveryResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onSIGetOfferingStatusChange?: (response: SIGetOfferingResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSIInitiateSessionStatusChange?: (\n response: SIInitiateSessionResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onSISendMessageStatusChange?: (response: SISendMessageResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSITerminateSessionStatusChange?: (\n response: SITerminateSessionResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n\n // Fallback handler for any task status change\n onTaskStatusChange?: (response: any, metadata: WebhookMetadata) => void | Promise<void>;\n\n // Activity logging (low-level protocol events)\n onActivity?: (activity: Activity) => void | Promise<void>;\n\n /**\n * Receiver-side deduplication of webhook payloads by `idempotency_key`.\n *\n * AdCP webhooks use at-least-once delivery — publishers retry until they\n * see a 2xx, so the same event may arrive more than once. When configured,\n * the first delivery for a given `(agent_id, idempotency_key)` tuple\n * dispatches to handlers; subsequent deliveries are dropped and surface\n * as a `webhook_duplicate` activity.\n *\n * Reuses `IdempotencyBackend` from `@adcp/sdk/server` — you can share\n * the same backend across request-side and webhook-side dedup, or use a\n * dedicated one. Scope is per-agent so keys from different senders are\n * independent, matching the spec's \"scoped to authenticated sender\n * identity\" rule.\n *\n * If a payload arrives without `idempotency_key` (non-conforming sender,\n * or A2A transport which does not carry the field), dispatch proceeds\n * without dedup and a warning is logged.\n */\n webhookDedup?: {\n backend: IdempotencyBackend;\n /** Retention for dedup keys. Defaults to 86_400 (24h). */\n ttlSeconds?: number;\n };\n\n // Notification handlers (agent-initiated, no operation_id)\n onMediaBuyDeliveryNotification?: (\n notification: MediaBuyDeliveryNotification,\n metadata: NotificationMetadata\n ) => void | Promise<void>;\n}\n\n/**\n * Async handler class\n */\nexport class AsyncHandler {\n constructor(private config: AsyncHandlerConfig) {}\n\n /**\n * Handle incoming webhook payload (both task completions and notifications)\n */\n async handleWebhook({\n result,\n metadata,\n previewHandler,\n }: {\n result: AdCPAsyncResponseData | undefined;\n metadata: WebhookMetadata;\n /** Preserves the originating preview API across async completion. */\n previewHandler?: 'canonical' | 'legacy';\n }): Promise<void> {\n if (await this.isDuplicate(metadata)) {\n await this.emitActivity({\n type: 'webhook_duplicate',\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n idempotency_key: metadata.idempotency_key,\n timestamp: metadata.timestamp,\n });\n return;\n }\n\n // Emit activity\n await this.emitActivity({\n type: 'webhook_received',\n idempotency_key: metadata.idempotency_key,\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n payload: metadata.rawHTTPPayload?.result ?? result,\n timestamp: metadata.timestamp,\n });\n\n // Check if this is a notification (media_buy_delivery with notification_type)\n // Notifications are treated like status updates for an ongoing \"get delivery report\" operation\n // The operation_id (from URL) groups all reports for the same agent + month\n if (\n metadata.task_type === 'media_buy_delivery' &&\n result &&\n typeof result === 'object' &&\n 'notification_type' in result\n ) {\n const notificationPayload = result as unknown as MediaBuyDeliveryNotification;\n\n // Build notification metadata\n // operation_id comes from webhook URL and was lazily generated from agent + month\n const notificationMetadata: NotificationMetadata = {\n ...metadata,\n notification_type: notificationPayload.notification_type,\n sequence_number: notificationPayload.sequence_number,\n next_expected_at: notificationPayload.next_expected_at,\n };\n\n await this.config.onMediaBuyDeliveryNotification?.(notificationPayload, notificationMetadata);\n return;\n }\n\n // All status changes go through the specific handler\n // The handler receives metadata with status and can act accordingly\n await this.handleCompletion(metadata.task_type, result, metadata, previewHandler);\n }\n\n /**\n * Handle task completion - route to specific handler\n */\n private async handleCompletion(\n taskType: string,\n result: AdCPAsyncResponseData | undefined,\n metadata: WebhookMetadata,\n previewHandler?: 'canonical' | 'legacy'\n ): Promise<void> {\n let handler: ((result: any, metadata: any) => void | Promise<void>) | undefined;\n\n // Route to specific handler based on task type\n switch (taskType) {\n case 'get_products':\n handler = this.config.onGetProductsStatusChange;\n break;\n\n case 'list_creative_formats':\n handler = this.config.onListCreativeFormatsLegacyStatusChange;\n break;\n\n case 'preview_creative':\n handler =\n previewHandler === 'legacy'\n ? (this.config.onPreviewCreativeLegacyStatusChange ?? this.config.onPreviewCreativeStatusChange)\n : (this.config.onPreviewCreativeStatusChange ?? this.config.onPreviewCreativeLegacyStatusChange);\n break;\n\n case 'build_creative':\n handler = this.config.onBuildCreativeLegacyStatusChange;\n break;\n\n case 'create_media_buy':\n handler = this.config.onCreateMediaBuyStatusChange;\n break;\n\n case 'update_media_buy':\n handler = this.config.onUpdateMediaBuyStatusChange;\n break;\n\n case 'sync_creatives':\n handler = this.config.onSyncCreativesStatusChange;\n break;\n\n case 'list_creatives':\n handler = this.config.onListCreativesStatusChange;\n break;\n\n case 'get_media_buys':\n handler = this.config.onGetMediaBuysStatusChange;\n break;\n\n case 'get_media_buy_delivery':\n handler = this.config.onGetMediaBuyDeliveryStatusChange;\n break;\n\n case 'get_creative_delivery':\n handler = this.config.onGetCreativeDeliveryStatusChange;\n break;\n\n case 'provide_performance_feedback':\n handler = this.config.onProvidePerformanceFeedbackStatusChange;\n break;\n\n case 'get_signals':\n handler = this.config.onGetSignalsStatusChange;\n break;\n\n case 'activate_signal':\n handler = this.config.onActivateSignalStatusChange;\n break;\n\n case 'list_content_standards':\n handler = this.config.onListContentStandardsLegacyStatusChange;\n break;\n\n case 'get_content_standards':\n handler = this.config.onGetContentStandardsLegacyStatusChange;\n break;\n\n case 'calibrate_content':\n handler = this.config.onCalibrateContentLegacyStatusChange;\n break;\n\n case 'validate_content_delivery':\n handler = this.config.onValidateContentDeliveryLegacyStatusChange;\n break;\n }\n\n // Call specific handler if configured, otherwise fallback to generic handler\n const handlerToCall = handler || this.config.onTaskStatusChange;\n\n if (handlerToCall) {\n try {\n await handlerToCall(result, metadata);\n } catch (error) {\n // Log error but don't crash webhook processing\n console.error(\n `Error in handler for task ${taskType}:`,\n error instanceof Error ? error.message : 'unknown error'\n );\n }\n }\n }\n\n /**\n * Emit activity event\n */\n private async emitActivity(activity: Activity): Promise<void> {\n await this.config.onActivity?.(activity);\n }\n\n /**\n * Claim the webhook for processing, returning true if the event has\n * already been delivered for this `(agent_id, idempotency_key)` tuple.\n *\n * Uses `IdempotencyBackend.putIfAbsent` so concurrent retries race on a\n * single claim: exactly one caller gets `true` and proceeds, the rest\n * observe the existing entry and return.\n */\n private async isDuplicate(metadata: WebhookMetadata): Promise<boolean> {\n const dedup = this.config.webhookDedup;\n if (!dedup) return false;\n\n const key = metadata.idempotency_key;\n if (!key || !IDEMPOTENCY_KEY_PATTERN.test(key)) {\n // No valid key. MCP senders MUST emit one per AdCP 3.0; A2A\n // transport doesn't carry the field at all. Warn MCP (so\n // integrators notice non-conforming publishers) and stay quiet\n // for A2A (expected and unactionable).\n if (metadata.protocol !== 'a2a') {\n console.warn(\n `[AdCP] webhookDedup enabled but webhook from agent=${metadata.agent_id} task=${metadata.task_id} has ${\n key ? 'an invalid' : 'no'\n } idempotency_key. Expected format: ${IDEMPOTENCY_KEY_PATTERN.source}. ` +\n 'Dispatching without dedup — duplicate deliveries from this sender will re-trigger handlers. ' +\n 'See docs/guides/PUSH-NOTIFICATION-CONFIG.md#deduplication'\n );\n }\n return false;\n }\n\n const ttlSeconds = dedup.ttlSeconds ?? 86_400;\n // Reserved prefix `adcp\\u001fwebhook\\u001fv1\\u001f...` namespaces the\n // claim so webhook dedup entries can coexist with request-side\n // idempotency entries in a shared backend — a request-side principal\n // can never produce a scoped key with this prefix because the\n // principal regex excludes U+001F.\n const scopedKey = `adcp\\u001fwebhook\\u001fv1\\u001f${metadata.agent_id}\\u001f${key}`;\n const expiresAt = Math.floor(Date.now() / 1000) + ttlSeconds;\n\n const claimed = await dedup.backend.putIfAbsent(scopedKey, {\n payloadHash: '',\n response: null,\n expiresAt,\n });\n return !claimed;\n }\n}\n\n// AdCP spec: `^[A-Za-z0-9_.:-]{16,255}$`. Any key not matching this\n// pattern is malformed — treat as missing rather than forming a scoped\n// key from arbitrary sender-supplied bytes.\nconst IDEMPOTENCY_KEY_PATTERN = /^[A-Za-z0-9_.:-]{16,255}$/;\n\n/**\n * Factory function to create async handler\n */\nexport function createAsyncHandler(config: AsyncHandlerConfig): AsyncHandler {\n return new AsyncHandler(config);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/core/AsyncHandler.ts"],"sourcesContent":["/**\n * Structured async handler for AdCP webhook responses\n * Provides type-safe callbacks for each AdCP tool completion\n */\n\nimport type { IdempotencyBackend } from '../server/idempotency/store';\nimport type {\n ListCreativeFormatsResponse,\n ListCreativesResponse,\n PreviewCreativeResponse,\n BuildCreativeResponse,\n GetMediaBuysResponse,\n GetMediaBuyDeliveryResponse,\n GetCreativeDeliveryResponse,\n ProvidePerformanceFeedbackResponse,\n GetSignalsResponse,\n ActivateSignalResponse,\n ListAccountsResponse,\n SyncAccountsResponse,\n SyncAudiencesResponse,\n CreatePropertyListResponse,\n GetPropertyListResponse,\n UpdatePropertyListResponse,\n ListPropertyListsResponse,\n DeletePropertyListResponse,\n ListContentStandardsResponse,\n GetContentStandardsResponse,\n CalibrateContentResponse,\n ValidateContentDeliveryResponse,\n SIGetOfferingResponse,\n SIInitiateSessionResponse,\n SISendMessageResponse,\n SITerminateSessionResponse,\n CreateMediaBuyResponse,\n GetProductsResponse,\n UpdateMediaBuyResponse,\n SyncCreativesResponse,\n} from '../types/tools.generated';\n\nimport type {\n AdCPAsyncResponseData,\n CreateMediaBuyAsyncInputRequired,\n CreateMediaBuyAsyncSubmitted,\n CreateMediaBuyAsyncWorking,\n GetProductsAsyncInputRequired,\n GetProductsAsyncSubmitted,\n GetProductsAsyncWorking,\n SyncCreativesAsyncInputRequired,\n SyncCreativesAsyncSubmitted,\n SyncCreativesAsyncWorking,\n TaskType,\n UpdateMediaBuyAsyncInputRequired,\n UpdateMediaBuyAsyncSubmitted,\n UpdateMediaBuyAsyncWorking,\n} from '../types/core.generated';\nimport type { TaskResultMetadata } from './ConversationTypes';\nimport {\n CreateMediaBuyAsyncResponseData,\n GetProductsAsyncResponseData,\n SyncCreativesAsyncResponseData,\n UpdateMediaBuyAsyncResponseData,\n} from '../types';\nimport type {\n CanonicalCreativeResponse,\n CanonicalGetProductsResponse,\n CanonicalListCreativesResponse,\n} from '../v2/projection/creative-delivery';\n\n/**\n * Metadata provided with webhook responses\n */\nexport interface WebhookMetadata {\n /** Client-provided operation ID */\n operation_id: string;\n /** Server's task ID */\n task_id: string;\n /** Agent ID */\n agent_id: string;\n /** Task type/tool name */\n task_type: string;\n /** Task status (completed, failed, needs_input, working, etc) */\n status: TaskResultMetadata['status'] | 'unknown';\n /** Server's context ID */\n context_id?: string;\n /** Human-readable context about the status change */\n message?: string;\n /** Timestamp */\n timestamp: string;\n /** raw HTTP payload */\n rawHTTPPayload?: any;\n /**\n * Wire protocol that delivered this webhook. Useful for handler code\n * that needs to treat MCP and A2A transports differently (e.g.,\n * `idempotency_key` is only present on MCP payloads).\n */\n protocol?: 'mcp' | 'a2a';\n /**\n * Sender-generated key stable across retries of the same webhook event\n * (MCP envelope only — A2A webhooks do not carry this field). Use this\n * as the canonical dedup key; see `AsyncHandlerConfig.webhookDedup`.\n */\n idempotency_key?: string;\n /**\n * Buyer-side product property policy evaluation for completed get_products\n * webhooks. Present when the client filters, audits, or rejects a webhook\n * result before dispatching it to handlers.\n */\n productPropertyPolicy?: TaskResultMetadata['productPropertyPolicy'];\n /**\n * Buyer-side pricing-options enforcement summary for completed get_products\n * webhooks. Present when the client drops products that arrived without a\n * usable `pricing_options[]` array before dispatching to handlers.\n */\n productPricingPolicy?: TaskResultMetadata['productPricingPolicy'];\n}\n\n/**\n * Metadata for agent-initiated notifications\n * Same as WebhookMetadata but includes notification-specific fields\n */\nexport interface NotificationMetadata extends WebhookMetadata {\n /** Notification type */\n notification_type: 'scheduled' | 'final' | 'delayed';\n /** Sequence number of this notification */\n sequence_number?: number;\n /** When next notification is expected (not present for 'final') */\n next_expected_at?: string;\n}\n\n// Simple union-typed handlers for webhook status changes\nexport type GetProductsStatusChangeHandler = (\n response:\n | CanonicalGetProductsResponse\n | GetProductsAsyncSubmitted\n | GetProductsAsyncWorking\n | GetProductsAsyncInputRequired,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type CreateMediaBuyStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n | CreateMediaBuyResponse\n | CreateMediaBuyAsyncSubmitted\n | CreateMediaBuyAsyncWorking\n | CreateMediaBuyAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type UpdateMediaBuyStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n | UpdateMediaBuyResponse\n | UpdateMediaBuyAsyncSubmitted\n | UpdateMediaBuyAsyncWorking\n | UpdateMediaBuyAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\nexport type SyncCreativesStatusChangeHandler = (\n response: CanonicalCreativeResponse<\n SyncCreativesResponse | SyncCreativesAsyncSubmitted | SyncCreativesAsyncWorking | SyncCreativesAsyncInputRequired\n >,\n metadata: WebhookMetadata\n) => void | Promise<void>;\n\n/**\n * Media buy delivery notification payload (PR #81)\n * Agent-initiated periodic reporting, not tied to any client operation\n */\nexport interface MediaBuyDeliveryNotification {\n /** Type of notification */\n notification_type: 'scheduled' | 'final' | 'delayed';\n /** Sequential notification number (starts at 1) */\n sequence_number?: number;\n /** When next notification is expected (omitted for 'final') */\n next_expected_at?: string;\n /** Reporting period for this notification */\n reporting_period?: {\n start: string;\n end: string;\n };\n /** Currency used for financial metrics */\n currency?: string;\n /** Array of media buy deliveries being reported */\n media_buy_deliveries?: Array<{\n media_buy_id: string;\n impressions?: number;\n clicks?: number;\n spend?: number;\n conversions?: number;\n [key: string]: any;\n }>;\n}\n\n/**\n * Activity event for logging/observability\n */\nexport interface Activity {\n type:\n | 'protocol_request'\n | 'protocol_response'\n | 'status_change'\n | 'webhook_received'\n | 'webhook_duplicate'\n | 'governance_check'\n | 'governance_outcome';\n operation_id: string;\n agent_id: string;\n context_id?: string;\n task_id?: string;\n task_type: string;\n status?: string;\n /**\n * Full AdCP response payload. Populated on `webhook_received` and\n * protocol/status events. INTENTIONALLY omitted on `webhook_duplicate`\n * to avoid re-logging potentially-sensitive data on every retry — the\n * originating `webhook_received` event already carries it. Correlate\n * the two via `idempotency_key`.\n */\n payload?: any;\n /**\n * Webhook idempotency key when available. Present on `webhook_received`\n * and `webhook_duplicate` events from MCP envelopes, enabling\n * correlation between a first delivery and its retry echoes.\n */\n idempotency_key?: string;\n timestamp: string;\n}\n\n/**\n * Configuration for async handler with typed callbacks\n */\nexport interface AsyncHandlerConfig {\n // AdCP tool status change handlers - called for ALL status changes (completed, failed, working, input-required, submitted)\n onGetProductsStatusChange?: GetProductsStatusChangeHandler;\n onListCreativeFormatsLegacyStatusChange?: (\n data: ListCreativeFormatsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onCreateMediaBuyStatusChange?: CreateMediaBuyStatusChangeHandler;\n onUpdateMediaBuyStatusChange?: UpdateMediaBuyStatusChangeHandler;\n onSyncCreativesStatusChange?: SyncCreativesStatusChangeHandler;\n onListCreativesStatusChange?: (\n response: CanonicalListCreativesResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onPreviewCreativeStatusChange?: (\n response: CanonicalCreativeResponse<PreviewCreativeResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n /** @deprecated Use `onPreviewCreativeStatusChange`. */\n onPreviewCreativeLegacyStatusChange?: (\n response: PreviewCreativeResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetMediaBuysStatusChange?: (\n response: CanonicalCreativeResponse<GetMediaBuysResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetMediaBuyDeliveryStatusChange?: (\n response: CanonicalCreativeResponse<GetMediaBuyDeliveryResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetCreativeDeliveryStatusChange?: (\n response: CanonicalCreativeResponse<GetCreativeDeliveryResponse>,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onProvidePerformanceFeedbackStatusChange?: (\n response: ProvidePerformanceFeedbackResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetSignalsStatusChange?: (response: GetSignalsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onActivateSignalStatusChange?: (response: ActivateSignalResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onBuildCreativeLegacyStatusChange?: (\n response: BuildCreativeResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListAccountsStatusChange?: (response: ListAccountsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSyncAccountsStatusChange?: (response: SyncAccountsResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSyncAudiencesStatusChange?: (response: SyncAudiencesResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onCreatePropertyListStatusChange?: (\n response: CreatePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetPropertyListStatusChange?: (\n response: GetPropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onUpdatePropertyListStatusChange?: (\n response: UpdatePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListPropertyListsStatusChange?: (\n response: ListPropertyListsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onDeletePropertyListStatusChange?: (\n response: DeletePropertyListResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onListContentStandardsLegacyStatusChange?: (\n response: ListContentStandardsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onGetContentStandardsLegacyStatusChange?: (\n response: GetContentStandardsResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onCalibrateContentLegacyStatusChange?: (\n response: CalibrateContentResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onValidateContentDeliveryLegacyStatusChange?: (\n response: ValidateContentDeliveryResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onSIGetOfferingStatusChange?: (response: SIGetOfferingResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSIInitiateSessionStatusChange?: (\n response: SIInitiateSessionResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n onSISendMessageStatusChange?: (response: SISendMessageResponse, metadata: WebhookMetadata) => void | Promise<void>;\n onSITerminateSessionStatusChange?: (\n response: SITerminateSessionResponse,\n metadata: WebhookMetadata\n ) => void | Promise<void>;\n\n // Fallback handler for any task status change\n onTaskStatusChange?: (response: any, metadata: WebhookMetadata) => void | Promise<void>;\n\n // Activity logging (low-level protocol events)\n onActivity?: (activity: Activity) => void | Promise<void>;\n\n /**\n * Receiver-side deduplication of webhook payloads by `idempotency_key`.\n *\n * AdCP webhooks use at-least-once delivery — publishers retry until they\n * see a 2xx, so the same event may arrive more than once. When configured,\n * the first delivery for a given `(agent_id, idempotency_key)` tuple\n * dispatches to handlers; subsequent deliveries are dropped and surface\n * as a `webhook_duplicate` activity.\n *\n * Reuses `IdempotencyBackend` from `@adcp/sdk/server` — you can share\n * the same backend across request-side and webhook-side dedup, or use a\n * dedicated one. Scope is per-agent so keys from different senders are\n * independent, matching the spec's \"scoped to authenticated sender\n * identity\" rule.\n *\n * If a payload arrives without `idempotency_key` (non-conforming sender,\n * or A2A transport which does not carry the field), dispatch proceeds\n * without dedup and a warning is logged.\n */\n webhookDedup?: {\n backend: IdempotencyBackend;\n /** Retention for dedup keys. Defaults to 86_400 (24h). */\n ttlSeconds?: number;\n };\n\n // Notification handlers (agent-initiated, no operation_id)\n onMediaBuyDeliveryNotification?: (\n notification: MediaBuyDeliveryNotification,\n metadata: NotificationMetadata\n ) => void | Promise<void>;\n}\n\n/**\n * Async handler class\n */\nexport class AsyncHandler {\n constructor(private config: AsyncHandlerConfig) {}\n\n /** Emit duplicate observability without re-running public result handlers. */\n async handleDurableSettlementDuplicate(metadata: WebhookMetadata): Promise<void> {\n await this.emitActivity({\n type: 'webhook_duplicate',\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n idempotency_key: metadata.idempotency_key,\n timestamp: metadata.timestamp,\n });\n }\n\n /**\n * Handle incoming webhook payload (both task completions and notifications)\n */\n async handleWebhook({\n result,\n metadata,\n previewHandler,\n }: {\n result: AdCPAsyncResponseData | undefined;\n metadata: WebhookMetadata;\n /** Preserves the originating preview API across async completion. */\n previewHandler?: 'canonical' | 'legacy';\n }): Promise<void> {\n if (await this.isDuplicate(metadata)) {\n await this.emitActivity({\n type: 'webhook_duplicate',\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n idempotency_key: metadata.idempotency_key,\n timestamp: metadata.timestamp,\n });\n return;\n }\n\n // Emit activity\n await this.emitActivity({\n type: 'webhook_received',\n idempotency_key: metadata.idempotency_key,\n operation_id: metadata.operation_id,\n agent_id: metadata.agent_id,\n context_id: metadata.context_id,\n task_id: metadata.task_id,\n task_type: metadata.task_type,\n status: metadata.status,\n payload: result,\n timestamp: metadata.timestamp,\n });\n\n // Check if this is a notification (media_buy_delivery with notification_type)\n // Notifications are treated like status updates for an ongoing \"get delivery report\" operation\n // The operation_id (from URL) groups all reports for the same agent + month\n if (\n metadata.task_type === 'media_buy_delivery' &&\n result &&\n typeof result === 'object' &&\n 'notification_type' in result\n ) {\n const notificationPayload = result as unknown as MediaBuyDeliveryNotification;\n\n // Build notification metadata\n // operation_id comes from webhook URL and was lazily generated from agent + month\n const notificationMetadata: NotificationMetadata = {\n ...metadata,\n notification_type: notificationPayload.notification_type,\n sequence_number: notificationPayload.sequence_number,\n next_expected_at: notificationPayload.next_expected_at,\n };\n\n await this.config.onMediaBuyDeliveryNotification?.(notificationPayload, notificationMetadata);\n return;\n }\n\n // All status changes go through the specific handler\n // The handler receives metadata with status and can act accordingly\n await this.handleCompletion(metadata.task_type, result, metadata, previewHandler);\n }\n\n /**\n * Handle task completion - route to specific handler\n */\n private async handleCompletion(\n taskType: string,\n result: AdCPAsyncResponseData | undefined,\n metadata: WebhookMetadata,\n previewHandler?: 'canonical' | 'legacy'\n ): Promise<void> {\n let handler: ((result: any, metadata: any) => void | Promise<void>) | undefined;\n\n // Route to specific handler based on task type\n switch (taskType) {\n case 'get_products':\n handler = this.config.onGetProductsStatusChange;\n break;\n\n case 'list_creative_formats':\n handler = this.config.onListCreativeFormatsLegacyStatusChange;\n break;\n\n case 'preview_creative':\n handler =\n previewHandler === 'legacy'\n ? (this.config.onPreviewCreativeLegacyStatusChange ?? this.config.onPreviewCreativeStatusChange)\n : (this.config.onPreviewCreativeStatusChange ?? this.config.onPreviewCreativeLegacyStatusChange);\n break;\n\n case 'build_creative':\n handler = this.config.onBuildCreativeLegacyStatusChange;\n break;\n\n case 'create_media_buy':\n handler = this.config.onCreateMediaBuyStatusChange;\n break;\n\n case 'update_media_buy':\n handler = this.config.onUpdateMediaBuyStatusChange;\n break;\n\n case 'sync_creatives':\n handler = this.config.onSyncCreativesStatusChange;\n break;\n\n case 'list_creatives':\n handler = this.config.onListCreativesStatusChange;\n break;\n\n case 'get_media_buys':\n handler = this.config.onGetMediaBuysStatusChange;\n break;\n\n case 'get_media_buy_delivery':\n handler = this.config.onGetMediaBuyDeliveryStatusChange;\n break;\n\n case 'get_creative_delivery':\n handler = this.config.onGetCreativeDeliveryStatusChange;\n break;\n\n case 'provide_performance_feedback':\n handler = this.config.onProvidePerformanceFeedbackStatusChange;\n break;\n\n case 'get_signals':\n handler = this.config.onGetSignalsStatusChange;\n break;\n\n case 'activate_signal':\n handler = this.config.onActivateSignalStatusChange;\n break;\n\n case 'list_content_standards':\n handler = this.config.onListContentStandardsLegacyStatusChange;\n break;\n\n case 'get_content_standards':\n handler = this.config.onGetContentStandardsLegacyStatusChange;\n break;\n\n case 'calibrate_content':\n handler = this.config.onCalibrateContentLegacyStatusChange;\n break;\n\n case 'validate_content_delivery':\n handler = this.config.onValidateContentDeliveryLegacyStatusChange;\n break;\n }\n\n // Call specific handler if configured, otherwise fallback to generic handler\n const handlerToCall = handler || this.config.onTaskStatusChange;\n\n if (handlerToCall) {\n try {\n await handlerToCall(result, metadata);\n } catch (error) {\n // Log error but don't crash webhook processing\n console.error(\n `Error in handler for task ${taskType}:`,\n error instanceof Error ? error.message : 'unknown error'\n );\n }\n }\n }\n\n /**\n * Emit activity event\n */\n private async emitActivity(activity: Activity): Promise<void> {\n await this.config.onActivity?.(activity);\n }\n\n /**\n * Claim the webhook for processing, returning true if the event has\n * already been delivered for this `(agent_id, idempotency_key)` tuple.\n *\n * Uses `IdempotencyBackend.putIfAbsent` so concurrent retries race on a\n * single claim: exactly one caller gets `true` and proceeds, the rest\n * observe the existing entry and return.\n */\n private async isDuplicate(metadata: WebhookMetadata): Promise<boolean> {\n const dedup = this.config.webhookDedup;\n if (!dedup) return false;\n\n const key = metadata.idempotency_key;\n if (!key || !IDEMPOTENCY_KEY_PATTERN.test(key)) {\n // No valid key. MCP senders MUST emit one per AdCP 3.0; A2A\n // transport doesn't carry the field at all. Warn MCP (so\n // integrators notice non-conforming publishers) and stay quiet\n // for A2A (expected and unactionable).\n if (metadata.protocol !== 'a2a') {\n console.warn(\n `[AdCP] webhookDedup enabled but webhook from agent=${metadata.agent_id} task=${metadata.task_id} has ${\n key ? 'an invalid' : 'no'\n } idempotency_key. Expected format: ${IDEMPOTENCY_KEY_PATTERN.source}. ` +\n 'Dispatching without dedup — duplicate deliveries from this sender will re-trigger handlers. ' +\n 'See docs/guides/PUSH-NOTIFICATION-CONFIG.md#deduplication'\n );\n }\n return false;\n }\n\n const ttlSeconds = dedup.ttlSeconds ?? 86_400;\n // Reserved prefix `adcp\\u001fwebhook\\u001fv1\\u001f...` namespaces the\n // claim so webhook dedup entries can coexist with request-side\n // idempotency entries in a shared backend — a request-side principal\n // can never produce a scoped key with this prefix because the\n // principal regex excludes U+001F.\n const scopedKey = `adcp\\u001fwebhook\\u001fv1\\u001f${metadata.agent_id}\\u001f${key}`;\n const expiresAt = Math.floor(Date.now() / 1000) + ttlSeconds;\n\n const claimed = await dedup.backend.putIfAbsent(scopedKey, {\n payloadHash: '',\n response: null,\n expiresAt,\n });\n return !claimed;\n }\n}\n\n// AdCP spec: `^[A-Za-z0-9_.:-]{16,255}$`. Any key not matching this\n// pattern is malformed — treat as missing rather than forming a scoped\n// key from arbitrary sender-supplied bytes.\nconst IDEMPOTENCY_KEY_PATTERN = /^[A-Za-z0-9_.:-]{16,255}$/;\n\n/**\n * Factory function to create async handler\n */\nexport function createAsyncHandler(config: AsyncHandlerConfig): AsyncHandler {\n return new AsyncHandler(config);\n}\n"],"mappings":"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","names":[]}
@@ -87,7 +87,7 @@ export type WebhookParseErrorCode = WebhookSignatureErrorCode | 'webhook_signatu
87
87
  * The receiver has no trusted registration or legacy HMAC configuration, so
88
88
  * no authentication check can be selected safely.
89
89
  */
90
- | 'webhook_unverifiable' | 'webhook_registration_not_found' | 'webhook_registration_mismatch' | 'webhook_verification_context_missing' | 'webhook_registration_store_unavailable' | 'webhook_verification_unavailable';
90
+ | 'webhook_unverifiable' | 'webhook_registration_not_found' | 'webhook_registration_mismatch' | 'webhook_verification_context_missing' | 'webhook_registration_store_unavailable' | 'webhook_durable_settlement_unavailable' | 'webhook_verification_unavailable';
91
91
  export interface WebhookVerificationConfig {
92
92
  /** Deterministic/custom key source. Defaults to resolveAgent brand.json discovery. */
93
93
  jwks?: JwksResolver;
@@ -159,6 +159,7 @@ export interface WebhookParseSuccess {
159
159
  timestamp?: string;
160
160
  message?: string;
161
161
  previewHandler?: 'canonical' | 'legacy';
162
+ requiresDurableSettlement?: boolean;
162
163
  };
163
164
  }
164
165
  export interface WebhookParseFailure {
@@ -443,6 +444,7 @@ export declare class SingleAgentClient {
443
444
  private readonly webhookJwksResolvers;
444
445
  constructor(agent: AgentConfig, config?: SingleAgentClientConfig);
445
446
  private persistWebhookRegistration;
447
+ private markWebhookDurableSettlementRequired;
446
448
  private webhookJwksFor;
447
449
  private resolveLegacyFormatConverter;
448
450
  private canonicalAccountScope;
@@ -87,7 +87,7 @@ export type WebhookParseErrorCode = WebhookSignatureErrorCode | 'webhook_signatu
87
87
  * The receiver has no trusted registration or legacy HMAC configuration, so
88
88
  * no authentication check can be selected safely.
89
89
  */
90
- | 'webhook_unverifiable' | 'webhook_registration_not_found' | 'webhook_registration_mismatch' | 'webhook_verification_context_missing' | 'webhook_registration_store_unavailable' | 'webhook_verification_unavailable';
90
+ | 'webhook_unverifiable' | 'webhook_registration_not_found' | 'webhook_registration_mismatch' | 'webhook_verification_context_missing' | 'webhook_registration_store_unavailable' | 'webhook_durable_settlement_unavailable' | 'webhook_verification_unavailable';
91
91
  export interface WebhookVerificationConfig {
92
92
  /** Deterministic/custom key source. Defaults to resolveAgent brand.json discovery. */
93
93
  jwks?: JwksResolver;
@@ -159,6 +159,7 @@ export interface WebhookParseSuccess {
159
159
  timestamp?: string;
160
160
  message?: string;
161
161
  previewHandler?: 'canonical' | 'legacy';
162
+ requiresDurableSettlement?: boolean;
162
163
  };
163
164
  }
164
165
  export interface WebhookParseFailure {
@@ -443,6 +444,7 @@ export declare class SingleAgentClient {
443
444
  private readonly webhookJwksResolvers;
444
445
  constructor(agent: AgentConfig, config?: SingleAgentClientConfig);
445
446
  private persistWebhookRegistration;
447
+ private markWebhookDurableSettlementRequired;
446
448
  private webhookJwksFor;
447
449
  private resolveLegacyFormatConverter;
448
450
  private canonicalAccountScope;
@@ -1 +1 @@
1
- {"version":3,"file":"SingleAgentClient.d.ts","sourceRoot":"","sources":["../../../src/lib/core/SingleAgentClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SingleAgentClient.d.ts","sourceRoot":"","sources":["../../../src/lib/core/SingleAgentClient.ts"],"names":[],"mappings":"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"}