@adcp/client 4.22.1 → 4.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/lib/index.d.ts +1 -1
  2. package/dist/lib/index.d.ts.map +1 -1
  3. package/dist/lib/index.js.map +1 -1
  4. package/dist/lib/testing/compliance/comply.d.ts +22 -5
  5. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  6. package/dist/lib/testing/compliance/comply.js +242 -276
  7. package/dist/lib/testing/compliance/comply.js.map +1 -1
  8. package/dist/lib/testing/compliance/index.d.ts +1 -0
  9. package/dist/lib/testing/compliance/index.d.ts.map +1 -1
  10. package/dist/lib/testing/compliance/index.js +6 -1
  11. package/dist/lib/testing/compliance/index.js.map +1 -1
  12. package/dist/lib/testing/compliance/platform-storyboards.d.ts +44 -0
  13. package/dist/lib/testing/compliance/platform-storyboards.d.ts.map +1 -0
  14. package/dist/lib/testing/compliance/platform-storyboards.js +230 -0
  15. package/dist/lib/testing/compliance/platform-storyboards.js.map +1 -0
  16. package/dist/lib/testing/compliance/storyboard-tracks.d.ts +2 -9
  17. package/dist/lib/testing/compliance/storyboard-tracks.d.ts.map +1 -1
  18. package/dist/lib/testing/compliance/storyboard-tracks.js +4 -44
  19. package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -1
  20. package/dist/lib/testing/index.d.ts +1 -1
  21. package/dist/lib/testing/index.d.ts.map +1 -1
  22. package/dist/lib/testing/index.js +6 -1
  23. package/dist/lib/testing/index.js.map +1 -1
  24. package/dist/lib/types/core.generated.d.ts +241 -2
  25. package/dist/lib/types/core.generated.d.ts.map +1 -1
  26. package/dist/lib/types/core.generated.js +1 -1
  27. package/dist/lib/types/schemas.generated.d.ts +3380 -3154
  28. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  29. package/dist/lib/types/schemas.generated.js +220 -115
  30. package/dist/lib/types/schemas.generated.js.map +1 -1
  31. package/dist/lib/types/tools.generated.d.ts +267 -74
  32. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  33. package/dist/lib/version.d.ts +3 -3
  34. package/dist/lib/version.js +3 -3
  35. package/docs/llms.txt +46 -30
  36. package/package.json +1 -1
  37. package/storyboards/audience_sync.yaml +18 -29
  38. package/storyboards/behavioral_analysis.yaml +40 -72
  39. package/storyboards/brand_rights.yaml +172 -75
  40. package/storyboards/campaign_governance_conditions.yaml +187 -0
  41. package/storyboards/campaign_governance_delivery.yaml +231 -0
  42. package/storyboards/campaign_governance_denied.yaml +135 -0
  43. package/storyboards/capability_discovery.yaml +106 -0
  44. package/storyboards/content_standards.yaml +251 -0
  45. package/storyboards/creative_ad_server.yaml +108 -16
  46. package/storyboards/creative_lifecycle.yaml +284 -0
  47. package/storyboards/creative_sales_agent.yaml +2 -6
  48. package/storyboards/creative_template.yaml +1 -5
  49. package/storyboards/error_compliance.yaml +105 -108
  50. package/storyboards/media_buy_catalog_creative.yaml +6 -4
  51. package/storyboards/media_buy_governance_escalation.yaml +9 -5
  52. package/storyboards/media_buy_guaranteed_approval.yaml +9 -7
  53. package/storyboards/media_buy_non_guaranteed.yaml +7 -6
  54. package/storyboards/media_buy_proposal_mode.yaml +9 -8
  55. package/storyboards/media_buy_seller.yaml +153 -165
  56. package/storyboards/media_buy_state_machine.yaml +100 -99
  57. package/storyboards/property_governance.yaml +239 -0
  58. package/storyboards/schema.yaml +2 -2
  59. package/storyboards/schema_validation.yaml +58 -51
  60. package/storyboards/si_session.yaml +99 -317
  61. package/storyboards/signal_marketplace.yaml +6 -5
  62. package/storyboards/signal_owned.yaml +5 -5
  63. package/storyboards/social_platform.yaml +274 -0
  64. package/storyboards/governance_content_standards.yaml +0 -213
  65. package/storyboards/governance_property_lists.yaml +0 -372
@@ -0,0 +1,274 @@
1
+ id: social_platform
2
+ version: "1.0.0"
3
+ title: "Social platform"
4
+ category: social_platform
5
+ summary: "Social media platform that accepts audience segments, native creatives, and conversion events from buyer agents."
6
+ track: audiences
7
+ required_tools:
8
+ - sync_audiences
9
+
10
+ narrative: |
11
+ You run a social media platform — Snap, Meta, TikTok, Pinterest, or any walled garden that
12
+ sells advertising through audience-based targeting and native creative formats. A buyer agent
13
+ connects to set up an account, push audience segments, sync native creatives, track conversion
14
+ events, and monitor spend.
15
+
16
+ Unlike open-web media buys, social platforms require the buyer to push assets into the
17
+ platform's environment. Audiences are activated via sync_audiences, creatives are pushed via
18
+ sync_creatives in platform-native formats, and conversion events flow back via log_event.
19
+
20
+ This storyboard covers the social platform integration from the buyer's perspective:
21
+ account setup, audience activation, native creative push, event tracking, and financial
22
+ monitoring.
23
+
24
+ agent:
25
+ interaction_model: media_buy_seller
26
+ capabilities:
27
+ - sells_media
28
+ - accepts_briefs
29
+ - supports_non_guaranteed
30
+ examples:
31
+ - "Snap"
32
+ - "Meta"
33
+ - "TikTok"
34
+ - "Pinterest"
35
+
36
+ caller:
37
+ role: buyer_agent
38
+ example: "Scope3 (DSP)"
39
+
40
+ prerequisites:
41
+ description: |
42
+ The caller needs a brand identity, operator credentials, audience segment definitions,
43
+ and native creative assets. The test kit provides a sample brand with creative assets
44
+ suitable for social formats.
45
+ test_kit: "test-kits/acme-outdoor.yaml"
46
+
47
+ phases:
48
+ - id: account_setup
49
+ title: "Account setup"
50
+ narrative: |
51
+ The buyer establishes an account with the social platform and verifies its status.
52
+ Social platforms often require advertiser verification before accepting ad spend.
53
+
54
+ steps:
55
+ - id: sync_accounts
56
+ title: "Register advertiser account"
57
+ narrative: |
58
+ The buyer registers their brand and operator with the social platform. The platform
59
+ provisions an advertiser account and returns its status. Social platforms may require
60
+ identity verification before the account goes active.
61
+ task: sync_accounts
62
+ schema_ref: "account/sync-accounts-request.json"
63
+ response_schema_ref: "account/sync-accounts-response.json"
64
+ doc_ref: "/accounts/tasks/sync_accounts"
65
+ stateful: true
66
+ expected: |
67
+ Return the advertiser account with:
68
+ - account_id: platform's identifier
69
+ - status: active or pending_approval (if verification required)
70
+ - account_scope: how the platform scopes this relationship
71
+
72
+ sample_request:
73
+ accounts:
74
+ - brand:
75
+ domain: "acmeoutdoor.com"
76
+ operator: "pinnacle-agency.com"
77
+ billing: "operator"
78
+
79
+ validations:
80
+ - check: response_schema
81
+ description: "Response matches sync-accounts-response.json schema"
82
+ - check: field_present
83
+ path: "accounts[0].account_id"
84
+ description: "Account has a platform-assigned ID"
85
+
86
+ - id: list_accounts
87
+ title: "Verify account status"
88
+ narrative: |
89
+ The buyer checks which accounts exist on the platform and their current status.
90
+ This confirms the account is active and shows any pending setup requirements.
91
+ task: list_accounts
92
+ schema_ref: "account/list-accounts-request.json"
93
+ response_schema_ref: "account/list-accounts-response.json"
94
+ doc_ref: "/accounts/tasks/list_accounts"
95
+ stateful: true
96
+ expected: |
97
+ Return accounts matching the query:
98
+ - accounts array with status, account_id, brand, operator
99
+ - Active accounts ready for ad operations
100
+ - Pending accounts with setup URLs if verification needed
101
+
102
+ sample_request:
103
+ brand:
104
+ domain: "acmeoutdoor.com"
105
+
106
+ validations:
107
+ - check: response_schema
108
+ description: "Response matches list-accounts-response.json schema"
109
+ - check: field_present
110
+ path: "accounts"
111
+ description: "Response contains accounts array"
112
+
113
+ - id: audience_sync
114
+ title: "Audience activation"
115
+ narrative: |
116
+ The buyer pushes audience segments to the platform. Social platforms use these segments
117
+ for targeting — the buyer defines who to reach, and the platform matches against its
118
+ user base.
119
+
120
+ steps:
121
+ - id: sync_audiences
122
+ title: "Push audience segments"
123
+ narrative: |
124
+ The buyer syncs audience segment definitions to the platform. Each segment includes
125
+ targeting criteria that the platform evaluates against its user graph. The platform
126
+ returns match rates and segment status.
127
+ task: sync_audiences
128
+ schema_ref: "media-buy/sync-audiences-request.json"
129
+ response_schema_ref: "media-buy/sync-audiences-response.json"
130
+ doc_ref: "/media-buy/task-reference/sync_audiences"
131
+ comply_scenario: sync_audiences
132
+ stateful: true
133
+ expected: |
134
+ Accept and process audience segments:
135
+ - Per-segment status: active, processing, or rejected
136
+ - Match rate estimates where available
137
+ - Platform-assigned segment IDs
138
+
139
+ sample_request:
140
+ account:
141
+ brand:
142
+ domain: "acmeoutdoor.com"
143
+ operator: "pinnacle-agency.com"
144
+ audiences:
145
+ - audience_id: "outdoor_enthusiasts_25_54"
146
+ name: "Outdoor enthusiasts 25-54"
147
+ description: "Adults 25-54 interested in hiking, camping, and outdoor gear"
148
+
149
+ validations:
150
+ - check: response_schema
151
+ description: "Response matches sync-audiences-response.json schema"
152
+
153
+ - id: creative_push
154
+ title: "Native creative sync"
155
+ narrative: |
156
+ The buyer pushes native creative assets to the platform. Social platforms render ads
157
+ in their native format — the buyer provides assets (images, headlines, descriptions)
158
+ and the platform assembles them into the native ad unit.
159
+
160
+ steps:
161
+ - id: sync_creatives
162
+ title: "Push native creative assets"
163
+ narrative: |
164
+ The buyer syncs creative assets for native ad formats. The platform validates
165
+ each creative against its format requirements and returns per-creative status.
166
+ task: sync_creatives
167
+ schema_ref: "creative/sync-creatives-request.json"
168
+ response_schema_ref: "creative/sync-creatives-response.json"
169
+ doc_ref: "/creative/task-reference/sync_creatives"
170
+ comply_scenario: creative_sync
171
+ stateful: true
172
+ expected: |
173
+ Accept and validate native creatives:
174
+ - Per-creative action: created or updated
175
+ - Per-creative status: accepted, pending_review, or rejected
176
+ - Validation errors for rejected creatives
177
+
178
+ sample_request:
179
+ account:
180
+ brand:
181
+ domain: "acmeoutdoor.com"
182
+ operator: "pinnacle-agency.com"
183
+ creatives:
184
+ - creative_id: "native_trail_pro"
185
+ name: "Trail Pro 3000 - Native"
186
+ format_id:
187
+ agent_url: "https://social-platform.example.com"
188
+ id: "native_feed"
189
+ assets:
190
+ - asset_id: "image"
191
+ asset_type: "image"
192
+ url: "https://cdn.pinnacle-agency.example/trail-pro-native.png"
193
+ mime_type: "image/png"
194
+ - asset_id: "headline"
195
+ asset_type: "text"
196
+ content: "Trail Pro 3000 — Built for the Summit"
197
+
198
+ validations:
199
+ - check: response_schema
200
+ description: "Response matches sync-creatives-response.json schema"
201
+
202
+ - id: event_logging
203
+ title: "Conversion event tracking"
204
+ narrative: |
205
+ The buyer sends conversion events back to the platform for measurement and optimization.
206
+ Events include purchases, signups, and other post-click actions that the platform uses
207
+ to optimize delivery and report on campaign performance.
208
+
209
+ steps:
210
+ - id: log_event
211
+ title: "Send conversion events"
212
+ narrative: |
213
+ The buyer logs conversion events that occurred after ad exposure. The platform
214
+ records these events for attribution, reporting, and delivery optimization.
215
+ task: log_event
216
+ schema_ref: "media-buy/log-event-request.json"
217
+ response_schema_ref: "media-buy/log-event-response.json"
218
+ doc_ref: "/media-buy/task-reference/log_event"
219
+ stateful: true
220
+ expected: |
221
+ Acknowledge the events:
222
+ - Per-event status: accepted or rejected
223
+ - Event IDs for deduplication
224
+ - Attribution window validation
225
+
226
+ sample_request:
227
+ account:
228
+ brand:
229
+ domain: "acmeoutdoor.com"
230
+ operator: "pinnacle-agency.com"
231
+ events:
232
+ - event_type: "purchase"
233
+ event_id: "evt_trail_pro_001"
234
+ timestamp: "2026-04-05T14:30:00Z"
235
+ value: 149.99
236
+ currency: "USD"
237
+
238
+ validations:
239
+ - check: response_schema
240
+ description: "Response matches log-event-response.json schema"
241
+
242
+ - id: financials
243
+ title: "Account financials"
244
+ narrative: |
245
+ The buyer checks account financials — spending, balance, and payment status. This is
246
+ essential for budget monitoring across multiple social platforms.
247
+
248
+ steps:
249
+ - id: get_account_financials
250
+ title: "Check account spending and balance"
251
+ narrative: |
252
+ The buyer retrieves financial information for the advertiser account. The platform
253
+ returns current spend, remaining balance, and payment status.
254
+ task: get_account_financials
255
+ schema_ref: "account/get-account-financials-request.json"
256
+ response_schema_ref: "account/get-account-financials-response.json"
257
+ doc_ref: "/accounts/tasks/get_account_financials"
258
+ stateful: true
259
+ expected: |
260
+ Return account financial data:
261
+ - Current spend to date
262
+ - Remaining balance or credit
263
+ - Payment status and terms
264
+ - Budget utilization metrics
265
+
266
+ sample_request:
267
+ account:
268
+ brand:
269
+ domain: "acmeoutdoor.com"
270
+ operator: "pinnacle-agency.com"
271
+
272
+ validations:
273
+ - check: response_schema
274
+ description: "Response matches get-account-financials-response.json schema"
@@ -1,213 +0,0 @@
1
- id: governance_content_standards
2
- version: "1.0.0"
3
- title: "Governance content standards"
4
- category: governance_content_standards
5
- summary: "Content standards discovery, calibration, and delivery validation."
6
- track: governance
7
- required_tools:
8
- - list_content_standards
9
-
10
- narrative: |
11
- You operate a governance agent that manages content standards — brand safety
12
- configurations that define what content is acceptable for a brand's ads.
13
- Buyer agents discover available standards, retrieve their details, calibrate
14
- content against them, and validate delivery records for compliance.
15
-
16
- This storyboard covers two concerns: discovering and inspecting content
17
- standards, and the active calibration/validation workflow where the governance
18
- agent evaluates content artifacts against those standards.
19
-
20
- agent:
21
- interaction_model: governance
22
- capabilities:
23
- - manages_content_standards
24
- - brand_safety
25
- - content_calibration
26
- examples:
27
- - "Brand safety verification platforms"
28
- - "Content classification services"
29
- - "Publisher quality assurance tools"
30
-
31
- caller:
32
- role: buyer_agent
33
- example: "Scope3 (DSP)"
34
-
35
- prerequisites:
36
- description: |
37
- The caller needs a brand identity and content artifacts (URLs) for
38
- calibration and validation testing. The governance agent must have at
39
- least one content standards configuration available.
40
- test_kit: "test-kits/acme-outdoor.yaml"
41
-
42
- phases:
43
- - id: content_standards_discovery
44
- title: "Content standards discovery"
45
- narrative: |
46
- The buyer discovers what content standards configurations are available
47
- from the governance agent, then retrieves the details of a specific
48
- standard. This is the read-only exploration phase before any calibration
49
- or validation occurs.
50
-
51
- steps:
52
- - id: list_content_standards
53
- title: "List available content standards"
54
- narrative: |
55
- The buyer asks the governance agent for all available content
56
- standards configurations. These represent brand safety rule sets
57
- that content can be evaluated against — GARM floor categories,
58
- custom brand policies, or industry-specific compliance rules.
59
- task: list_content_standards
60
- stateful: false
61
- expected: |
62
- Return available content standards with:
63
- - standards: array of content standards summaries
64
- - Each standard has standards_id, name, and optionally provider
65
- sample_request:
66
- context: "Discover available brand safety configurations"
67
- max_results: 10
68
- validations:
69
- - check: response_schema
70
- description: "Response matches list-content-standards response schema"
71
- - check: field_present
72
- path: "standards"
73
- description: "Response contains a standards array"
74
- context_outputs:
75
- - path: "standards[0].standards_id"
76
- key: "standards_id"
77
-
78
- - id: get_content_standards
79
- title: "Get content standards detail"
80
- requires_tool: get_content_standards
81
- narrative: |
82
- The buyer retrieves full details of a specific content standards
83
- configuration discovered in the previous step. The response includes
84
- the complete rule set — categories, thresholds, and feature
85
- definitions that the governance agent uses to evaluate content.
86
- task: get_content_standards
87
- stateful: true
88
- expected: |
89
- Return the content standards configuration with:
90
- - standards_id: matches the requested ID
91
- - name: human-readable label
92
- - features: array of evaluation criteria
93
- sample_request:
94
- standards_id: "$context.standards_id"
95
- context_inputs:
96
- - key: "standards_id"
97
- inject_at: "standards_id"
98
- validations:
99
- - check: response_schema
100
- description: "Response matches get-content-standards response schema"
101
- - check: field_present
102
- path: "standards_id"
103
- description: "Response contains the standards ID"
104
-
105
- - id: get_invalid_content_standards
106
- title: "Get invalid content standards (error expected)"
107
- requires_tool: get_content_standards
108
- narrative: |
109
- The buyer requests a content standards configuration that does not
110
- exist. The governance agent should reject the request with an error,
111
- rather than returning empty or fabricated data.
112
- task: get_content_standards
113
- stateful: false
114
- expect_error: true
115
- expected: |
116
- Return an error indicating the standards ID does not exist.
117
- sample_request:
118
- standards_id: "INVALID_STANDARDS_ID_DOES_NOT_EXIST_12345"
119
- validations:
120
- - check: error_code
121
- value: "not_found"
122
- description: "Agent rejects an invalid standards_id"
123
-
124
- - id: content_calibration
125
- title: "Content calibration and delivery validation"
126
- requires_tool: calibrate_content
127
- narrative: |
128
- With a content standards configuration identified, the buyer submits
129
- content artifacts for calibration — asking the governance agent to
130
- evaluate whether specific pages or content items meet the brand safety
131
- requirements. After calibration, the buyer validates delivery records
132
- to confirm that ads were served alongside compliant content.
133
-
134
- steps:
135
- - id: calibrate_content
136
- title: "Calibrate content against standards"
137
- narrative: |
138
- The buyer submits content artifacts (web pages, articles) for
139
- evaluation against a specific content standards configuration.
140
- The governance agent classifies each artifact and returns
141
- calibration results — pass/fail per artifact, with scores or
142
- category assignments.
143
- task: calibrate_content
144
- stateful: true
145
- expected: |
146
- Return calibration results with:
147
- - session_id: identifier for this calibration session
148
- - session_status: completed or in_progress
149
- - Per-artifact evaluation results (pending or evaluated)
150
- sample_request:
151
- context: "Evaluate sample content for brand safety"
152
- standards_id: "$context.standards_id"
153
- artifacts:
154
- - artifact_id: "test-artifact-1"
155
- artifact_type: "webpage"
156
- url: "https://example.com/article/safe-content"
157
- title: "Safe Test Article"
158
- - artifact_id: "test-artifact-2"
159
- artifact_type: "webpage"
160
- url: "https://example.com/article/test-content"
161
- title: "Another Test Article"
162
- feedback_type: "binary"
163
- context_inputs:
164
- - key: "standards_id"
165
- inject_at: "standards_id"
166
- validations:
167
- - check: response_schema
168
- description: "Response matches calibrate-content response schema"
169
- - check: field_present
170
- path: "session_id"
171
- description: "Response contains a calibration session ID"
172
- context_outputs:
173
- - path: "session_id"
174
- key: "calibration_session_id"
175
-
176
- - id: validate_content_delivery
177
- title: "Validate content delivery records"
178
- requires_tool: validate_content_delivery
179
- narrative: |
180
- The buyer submits delivery records — evidence that ads were served
181
- alongside specific content — for compliance validation. The
182
- governance agent checks each record against the content standards
183
- and returns pass/fail results with a summary.
184
- task: validate_content_delivery
185
- stateful: true
186
- expected: |
187
- Return validation results with:
188
- - summary.total_records: number of records validated
189
- - summary.passed_records: number that met standards
190
- - summary.failed_records: number that did not meet standards
191
- - Per-record validation details
192
- sample_request:
193
- context: "Validate delivery records against content standards"
194
- standards_id: "$context.standards_id"
195
- records:
196
- - record_id: "test-record-1"
197
- artifact:
198
- artifact_id: "test-artifact-1"
199
- artifact_type: "webpage"
200
- url: "https://example.com/article/delivered-content"
201
- delivered_at: "2026-04-01T12:00:00Z"
202
- context_inputs:
203
- - key: "standards_id"
204
- inject_at: "standards_id"
205
- validations:
206
- - check: response_schema
207
- description: "Response matches validate-content-delivery response schema"
208
- - check: field_present
209
- path: "summary"
210
- description: "Response contains a validation summary"
211
- - check: field_present
212
- path: "summary.total_records"
213
- description: "Summary includes total record count"