@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.
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/testing/compliance/comply.d.ts +22 -5
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
- package/dist/lib/testing/compliance/comply.js +242 -276
- package/dist/lib/testing/compliance/comply.js.map +1 -1
- package/dist/lib/testing/compliance/index.d.ts +1 -0
- package/dist/lib/testing/compliance/index.d.ts.map +1 -1
- package/dist/lib/testing/compliance/index.js +6 -1
- package/dist/lib/testing/compliance/index.js.map +1 -1
- package/dist/lib/testing/compliance/platform-storyboards.d.ts +44 -0
- package/dist/lib/testing/compliance/platform-storyboards.d.ts.map +1 -0
- package/dist/lib/testing/compliance/platform-storyboards.js +230 -0
- package/dist/lib/testing/compliance/platform-storyboards.js.map +1 -0
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts +2 -9
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts.map +1 -1
- package/dist/lib/testing/compliance/storyboard-tracks.js +4 -44
- package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -1
- package/dist/lib/testing/index.d.ts +1 -1
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js +6 -1
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/types/core.generated.d.ts +241 -2
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +1 -1
- package/dist/lib/types/schemas.generated.d.ts +3380 -3154
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +220 -115
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +267 -74
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/docs/llms.txt +46 -30
- package/package.json +1 -1
- package/storyboards/audience_sync.yaml +18 -29
- package/storyboards/behavioral_analysis.yaml +40 -72
- package/storyboards/brand_rights.yaml +172 -75
- package/storyboards/campaign_governance_conditions.yaml +187 -0
- package/storyboards/campaign_governance_delivery.yaml +231 -0
- package/storyboards/campaign_governance_denied.yaml +135 -0
- package/storyboards/capability_discovery.yaml +106 -0
- package/storyboards/content_standards.yaml +251 -0
- package/storyboards/creative_ad_server.yaml +108 -16
- package/storyboards/creative_lifecycle.yaml +284 -0
- package/storyboards/creative_sales_agent.yaml +2 -6
- package/storyboards/creative_template.yaml +1 -5
- package/storyboards/error_compliance.yaml +105 -108
- package/storyboards/media_buy_catalog_creative.yaml +6 -4
- package/storyboards/media_buy_governance_escalation.yaml +9 -5
- package/storyboards/media_buy_guaranteed_approval.yaml +9 -7
- package/storyboards/media_buy_non_guaranteed.yaml +7 -6
- package/storyboards/media_buy_proposal_mode.yaml +9 -8
- package/storyboards/media_buy_seller.yaml +153 -165
- package/storyboards/media_buy_state_machine.yaml +100 -99
- package/storyboards/property_governance.yaml +239 -0
- package/storyboards/schema.yaml +2 -2
- package/storyboards/schema_validation.yaml +58 -51
- package/storyboards/si_session.yaml +99 -317
- package/storyboards/signal_marketplace.yaml +6 -5
- package/storyboards/signal_owned.yaml +5 -5
- package/storyboards/social_platform.yaml +274 -0
- package/storyboards/governance_content_standards.yaml +0 -213
- package/storyboards/governance_property_lists.yaml +0 -372
|
@@ -2,383 +2,165 @@ id: si_session
|
|
|
2
2
|
version: "1.0.0"
|
|
3
3
|
title: "Sponsored intelligence session"
|
|
4
4
|
category: si_session
|
|
5
|
-
summary: "
|
|
5
|
+
summary: "Conversational ad session on an AI platform — discover offerings, initiate a session, exchange messages, and terminate."
|
|
6
6
|
track: si
|
|
7
7
|
required_tools:
|
|
8
8
|
- si_initiate_session
|
|
9
9
|
|
|
10
10
|
narrative: |
|
|
11
|
-
You run
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
You run an AI platform that supports sponsored intelligence — conversational ad experiences
|
|
12
|
+
embedded in AI-powered search, chat, or assistant products. A buyer agent connects to
|
|
13
|
+
discover what SI offerings are available, initiate a session, send messages within the
|
|
14
|
+
conversation, and cleanly terminate when done.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
and the response may contain an acp_handoff structure with checkout details.
|
|
16
|
+
Sponsored intelligence is fundamentally different from display or video advertising. The
|
|
17
|
+
ad experience is conversational — the user asks a question, the AI responds, and sponsored
|
|
18
|
+
content is woven into the response in a way that is transparent and relevant.
|
|
20
19
|
|
|
21
|
-
This storyboard
|
|
22
|
-
and
|
|
20
|
+
This storyboard covers the SI session lifecycle from the buyer's perspective: discovering
|
|
21
|
+
what the platform offers, starting a conversation, exchanging messages, and ending the
|
|
22
|
+
session.
|
|
23
23
|
|
|
24
24
|
agent:
|
|
25
25
|
interaction_model: si_platform
|
|
26
26
|
capabilities:
|
|
27
27
|
- sponsored_intelligence
|
|
28
|
-
- conversational
|
|
29
28
|
examples:
|
|
30
|
-
- "
|
|
31
|
-
- "
|
|
32
|
-
- "
|
|
29
|
+
- "Perplexity"
|
|
30
|
+
- "ChatGPT Search"
|
|
31
|
+
- "Arc Browser"
|
|
32
|
+
- "AI assistants with ad support"
|
|
33
33
|
|
|
34
34
|
caller:
|
|
35
35
|
role: buyer_agent
|
|
36
|
-
example: "
|
|
36
|
+
example: "Nova Motors (advertiser)"
|
|
37
37
|
|
|
38
38
|
prerequisites:
|
|
39
39
|
description: |
|
|
40
|
-
The caller needs
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
The caller needs brand context and campaign parameters for SI. The test kit provides
|
|
41
|
+
a sample brand (Nova Motors) with signal definitions suitable for conversational
|
|
42
|
+
ad experiences.
|
|
43
|
+
test_kit: "test-kits/nova-motors.yaml"
|
|
43
44
|
|
|
44
45
|
phases:
|
|
45
|
-
- id:
|
|
46
|
-
title: "
|
|
46
|
+
- id: offering_discovery
|
|
47
|
+
title: "Discover SI offerings"
|
|
47
48
|
narrative: |
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
This phase also validates that the agent handles invalid offering IDs gracefully,
|
|
53
|
-
returning unavailable rather than erroring.
|
|
49
|
+
Before initiating any session, the buyer discovers what sponsored intelligence
|
|
50
|
+
offerings the platform has available. This determines what kinds of conversational
|
|
51
|
+
experiences can be sponsored and at what pricing.
|
|
54
52
|
|
|
55
53
|
steps:
|
|
56
|
-
- id:
|
|
57
|
-
title: "
|
|
58
|
-
requires_tool: si_get_offering
|
|
59
|
-
narrative: |
|
|
60
|
-
The caller queries a specific offering by ID. The agent checks inventory and
|
|
61
|
-
returns whether the offering is available, along with an offering_token the
|
|
62
|
-
caller uses in subsequent session initiation.
|
|
63
|
-
task: si_get_offering
|
|
64
|
-
stateful: false
|
|
65
|
-
expected: |
|
|
66
|
-
Return the offering status:
|
|
67
|
-
- available: true or false
|
|
68
|
-
- offering_token: opaque token for session initiation (when available)
|
|
69
|
-
- title and description of the offering
|
|
70
|
-
- capabilities: what modalities this offering supports
|
|
71
|
-
- unavailable_reason: explanation when not available
|
|
72
|
-
|
|
73
|
-
sample_request:
|
|
74
|
-
offering_id: "e2e-test-offering"
|
|
75
|
-
context: "Checking SI offering availability"
|
|
76
|
-
identity:
|
|
77
|
-
principal: "e2e-test-principal"
|
|
78
|
-
device_id: "e2e-test-device"
|
|
79
|
-
|
|
80
|
-
validations:
|
|
81
|
-
- check: field_present
|
|
82
|
-
path: "available"
|
|
83
|
-
description: "Response includes availability status"
|
|
84
|
-
|
|
85
|
-
context_outputs:
|
|
86
|
-
- path: "offering_token"
|
|
87
|
-
key: "offering_token"
|
|
88
|
-
|
|
89
|
-
- id: get_offering_invalid
|
|
90
|
-
title: "Check invalid offering availability"
|
|
91
|
-
requires_tool: si_get_offering
|
|
54
|
+
- id: si_get_offering
|
|
55
|
+
title: "Get available SI offerings"
|
|
92
56
|
narrative: |
|
|
93
|
-
The
|
|
94
|
-
|
|
95
|
-
|
|
57
|
+
The buyer calls si_get_offering to learn what conversational ad experiences
|
|
58
|
+
the platform supports. The response describes available offerings with pricing,
|
|
59
|
+
targeting options, and format specifications.
|
|
96
60
|
task: si_get_offering
|
|
61
|
+
schema_ref: "sponsored-intelligence/si-get-offering-request.json"
|
|
62
|
+
response_schema_ref: "sponsored-intelligence/si-get-offering-response.json"
|
|
63
|
+
doc_ref: "/sponsored-intelligence/tasks/si_get_offering"
|
|
64
|
+
comply_scenario: si_availability
|
|
97
65
|
stateful: false
|
|
98
66
|
expected: |
|
|
99
|
-
Return available
|
|
100
|
-
|
|
67
|
+
Return available SI offerings:
|
|
68
|
+
- Offering descriptions with pricing
|
|
69
|
+
- Supported conversation types
|
|
70
|
+
- Targeting and context options
|
|
71
|
+
- Format specifications for sponsored content
|
|
101
72
|
|
|
102
|
-
sample_request:
|
|
103
|
-
offering_id: "INVALID_OFFERING_ID_DOES_NOT_EXIST_12345"
|
|
104
|
-
context: "Checking unavailable offering"
|
|
105
|
-
identity:
|
|
106
|
-
principal: "e2e-test-principal"
|
|
73
|
+
sample_request: {}
|
|
107
74
|
|
|
108
75
|
validations:
|
|
109
|
-
- check:
|
|
110
|
-
|
|
111
|
-
value: false
|
|
112
|
-
description: "Invalid offering is reported as unavailable"
|
|
76
|
+
- check: response_schema
|
|
77
|
+
description: "Response matches si-get-offering-response.json schema"
|
|
113
78
|
|
|
114
79
|
- id: session_lifecycle
|
|
115
80
|
title: "Session lifecycle"
|
|
116
81
|
narrative: |
|
|
117
|
-
The
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
After termination, the caller verifies the session is no longer active
|
|
122
|
-
by attempting to send a message to the terminated session.
|
|
123
|
-
|
|
124
|
-
steps:
|
|
125
|
-
- id: initiate_session
|
|
126
|
-
title: "Initiate SI session"
|
|
127
|
-
narrative: |
|
|
128
|
-
The caller starts a new conversational session with an offering. The agent
|
|
129
|
-
provisions the session and returns a session_id, an initial response message,
|
|
130
|
-
and negotiated capabilities describing what the session supports.
|
|
131
|
-
task: si_initiate_session
|
|
132
|
-
stateful: true
|
|
133
|
-
expected: |
|
|
134
|
-
Return the session with:
|
|
135
|
-
- session_id: unique identifier for this session
|
|
136
|
-
- response: initial message and optional ui_elements
|
|
137
|
-
- negotiated_capabilities: what modalities were agreed upon
|
|
138
|
-
|
|
139
|
-
sample_request:
|
|
140
|
-
offering_id: "e2e-test-offering"
|
|
141
|
-
offering_token: "$context.offering_token"
|
|
142
|
-
identity:
|
|
143
|
-
principal: "e2e-test-principal"
|
|
144
|
-
device_id: "e2e-test-device"
|
|
145
|
-
context: "Initiating conversation about products"
|
|
146
|
-
placement: "e2e-test-placement"
|
|
147
|
-
supported_capabilities:
|
|
148
|
-
modalities:
|
|
149
|
-
conversational: true
|
|
150
|
-
rich_media: true
|
|
151
|
-
|
|
152
|
-
context_inputs:
|
|
153
|
-
- key: "offering_token"
|
|
154
|
-
inject_at: "offering_token"
|
|
155
|
-
|
|
156
|
-
validations:
|
|
157
|
-
- check: field_present
|
|
158
|
-
path: "session_id"
|
|
159
|
-
description: "Response includes a session_id"
|
|
160
|
-
|
|
161
|
-
context_outputs:
|
|
162
|
-
- path: "session_id"
|
|
163
|
-
key: "session_id"
|
|
164
|
-
|
|
165
|
-
- id: send_message_1
|
|
166
|
-
title: "Send message: product inquiry"
|
|
167
|
-
requires_tool: si_send_message
|
|
168
|
-
narrative: |
|
|
169
|
-
The caller sends a product inquiry message within the active session.
|
|
170
|
-
The agent responds with product information and optional UI elements
|
|
171
|
-
such as product cards or carousels.
|
|
172
|
-
task: si_send_message
|
|
173
|
-
stateful: true
|
|
174
|
-
expected: |
|
|
175
|
-
Return the message response:
|
|
176
|
-
- session_id: matches the active session
|
|
177
|
-
- session_status: active
|
|
178
|
-
- response: message text and optional ui_elements
|
|
179
|
-
|
|
180
|
-
sample_request:
|
|
181
|
-
session_id: "$context.session_id"
|
|
182
|
-
message: "What products do you have available?"
|
|
183
|
-
metadata:
|
|
184
|
-
test_iteration: 1
|
|
185
|
-
|
|
186
|
-
context_inputs:
|
|
187
|
-
- key: "session_id"
|
|
188
|
-
inject_at: "session_id"
|
|
189
|
-
|
|
190
|
-
validations:
|
|
191
|
-
- check: field_present
|
|
192
|
-
path: "session_id"
|
|
193
|
-
description: "Response includes the session_id"
|
|
194
|
-
|
|
195
|
-
- id: send_message_2
|
|
196
|
-
title: "Send message: product details"
|
|
197
|
-
requires_tool: si_send_message
|
|
198
|
-
narrative: |
|
|
199
|
-
The caller asks a follow-up question about a specific product.
|
|
200
|
-
The agent should maintain conversational context from the previous
|
|
201
|
-
message and respond with more detailed information.
|
|
202
|
-
task: si_send_message
|
|
203
|
-
stateful: true
|
|
204
|
-
expected: |
|
|
205
|
-
Return a contextual response continuing the conversation:
|
|
206
|
-
- session_status: active
|
|
207
|
-
- response: detailed product information
|
|
208
|
-
|
|
209
|
-
sample_request:
|
|
210
|
-
session_id: "$context.session_id"
|
|
211
|
-
message: "Can you tell me more about your best seller?"
|
|
212
|
-
metadata:
|
|
213
|
-
test_iteration: 2
|
|
214
|
-
|
|
215
|
-
context_inputs:
|
|
216
|
-
- key: "session_id"
|
|
217
|
-
inject_at: "session_id"
|
|
218
|
-
|
|
219
|
-
validations:
|
|
220
|
-
- check: field_present
|
|
221
|
-
path: "session_id"
|
|
222
|
-
description: "Response includes the session_id"
|
|
223
|
-
|
|
224
|
-
- id: terminate_session
|
|
225
|
-
title: "Terminate SI session"
|
|
226
|
-
requires_tool: si_terminate_session
|
|
227
|
-
narrative: |
|
|
228
|
-
The caller ends the session with a user_exit reason. The agent
|
|
229
|
-
confirms termination and cleans up session state.
|
|
230
|
-
task: si_terminate_session
|
|
231
|
-
stateful: true
|
|
232
|
-
expected: |
|
|
233
|
-
Confirm session termination:
|
|
234
|
-
- session_id: matches the terminated session
|
|
235
|
-
- terminated: true
|
|
236
|
-
|
|
237
|
-
sample_request:
|
|
238
|
-
session_id: "$context.session_id"
|
|
239
|
-
reason: "user_exit"
|
|
240
|
-
termination_context:
|
|
241
|
-
summary: "Session completed successfully"
|
|
242
|
-
|
|
243
|
-
context_inputs:
|
|
244
|
-
- key: "session_id"
|
|
245
|
-
inject_at: "session_id"
|
|
246
|
-
|
|
247
|
-
validations:
|
|
248
|
-
- check: field_present
|
|
249
|
-
path: "terminated"
|
|
250
|
-
description: "Response confirms termination"
|
|
251
|
-
|
|
252
|
-
- id: send_to_terminated
|
|
253
|
-
title: "Send message to terminated session (error expected)"
|
|
254
|
-
requires_tool: si_send_message
|
|
255
|
-
expect_error: true
|
|
256
|
-
narrative: |
|
|
257
|
-
The caller attempts to send a message to the terminated session.
|
|
258
|
-
The agent should reject the message or return a terminated session
|
|
259
|
-
status. This validates that session cleanup is enforced.
|
|
260
|
-
task: si_send_message
|
|
261
|
-
stateful: true
|
|
262
|
-
expected: |
|
|
263
|
-
Reject the message or return session_status of "terminated" or "complete".
|
|
264
|
-
The agent must not accept new messages on a terminated session.
|
|
265
|
-
|
|
266
|
-
sample_request:
|
|
267
|
-
session_id: "$context.session_id"
|
|
268
|
-
message: "This should fail"
|
|
269
|
-
|
|
270
|
-
context_inputs:
|
|
271
|
-
- key: "session_id"
|
|
272
|
-
inject_at: "session_id"
|
|
273
|
-
|
|
274
|
-
validations: []
|
|
275
|
-
|
|
276
|
-
- id: handoff
|
|
277
|
-
title: "Transaction handoff"
|
|
278
|
-
narrative: |
|
|
279
|
-
The caller initiates a session, sends a purchase-intent message, and then
|
|
280
|
-
terminates with reason handoff_transaction. The agent may include an
|
|
281
|
-
acp_handoff structure in the termination response containing checkout URLs,
|
|
282
|
-
tokens, and transaction metadata.
|
|
283
|
-
|
|
284
|
-
This tests the commerce integration path where conversational AI transitions
|
|
285
|
-
to a purchase flow.
|
|
82
|
+
The buyer initiates a session, exchanges messages within it, and terminates
|
|
83
|
+
cleanly. Each session represents a single conversational ad experience — the
|
|
84
|
+
buyer provides context and the platform weaves sponsored content into the
|
|
85
|
+
conversation.
|
|
286
86
|
|
|
287
87
|
steps:
|
|
288
|
-
- id:
|
|
289
|
-
title: "
|
|
88
|
+
- id: si_initiate_session
|
|
89
|
+
title: "Start a conversation session"
|
|
290
90
|
narrative: |
|
|
291
|
-
The
|
|
292
|
-
|
|
91
|
+
The buyer initiates a new SI session with campaign context. The platform
|
|
92
|
+
creates a session and returns a session ID that the buyer uses for subsequent
|
|
93
|
+
messages.
|
|
293
94
|
task: si_initiate_session
|
|
95
|
+
schema_ref: "sponsored-intelligence/si-initiate-session-request.json"
|
|
96
|
+
response_schema_ref: "sponsored-intelligence/si-initiate-session-response.json"
|
|
97
|
+
doc_ref: "/sponsored-intelligence/tasks/si_initiate_session"
|
|
98
|
+
comply_scenario: si_session_lifecycle
|
|
294
99
|
stateful: true
|
|
295
100
|
expected: |
|
|
296
|
-
Return a new session
|
|
101
|
+
Return a new session:
|
|
102
|
+
- session_id: platform-assigned session identifier
|
|
103
|
+
- status: active
|
|
104
|
+
- Initial context acknowledgment
|
|
105
|
+
- Available interaction modes
|
|
297
106
|
|
|
298
107
|
sample_request:
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
principal: "e2e-test-principal"
|
|
303
|
-
device_id: "e2e-test-device"
|
|
304
|
-
context: "Initiating session for handoff test"
|
|
305
|
-
placement: "e2e-test-placement"
|
|
306
|
-
supported_capabilities:
|
|
307
|
-
modalities:
|
|
308
|
-
conversational: true
|
|
309
|
-
|
|
310
|
-
context_inputs:
|
|
311
|
-
- key: "offering_token"
|
|
312
|
-
inject_at: "offering_token"
|
|
108
|
+
brand:
|
|
109
|
+
domain: "novamotors.example.com"
|
|
110
|
+
campaign_context: "Nova EV launch — targeting environmentally conscious drivers interested in electric vehicles"
|
|
313
111
|
|
|
314
112
|
validations:
|
|
315
|
-
- check:
|
|
316
|
-
|
|
317
|
-
description: "Response includes a session_id"
|
|
113
|
+
- check: response_schema
|
|
114
|
+
description: "Response matches si-initiate-session-response.json schema"
|
|
318
115
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
key: "handoff_session_id"
|
|
322
|
-
|
|
323
|
-
- id: send_purchase_intent
|
|
324
|
-
title: "Send purchase intent message"
|
|
325
|
-
requires_tool: si_send_message
|
|
116
|
+
- id: si_send_message
|
|
117
|
+
title: "Exchange messages"
|
|
326
118
|
narrative: |
|
|
327
|
-
The
|
|
328
|
-
|
|
119
|
+
The buyer sends a message within the active session. The platform processes
|
|
120
|
+
the message and returns a response that may include sponsored content woven
|
|
121
|
+
into the conversational experience.
|
|
329
122
|
task: si_send_message
|
|
123
|
+
schema_ref: "sponsored-intelligence/si-send-message-request.json"
|
|
124
|
+
response_schema_ref: "sponsored-intelligence/si-send-message-response.json"
|
|
125
|
+
doc_ref: "/sponsored-intelligence/tasks/si_send_message"
|
|
126
|
+
comply_scenario: si_session_lifecycle
|
|
330
127
|
stateful: true
|
|
331
128
|
expected: |
|
|
332
|
-
|
|
333
|
-
|
|
129
|
+
Process the message and return a response:
|
|
130
|
+
- Message acknowledgment
|
|
131
|
+
- Response content (may include sponsored elements)
|
|
132
|
+
- Session state (active, waiting, etc.)
|
|
334
133
|
|
|
335
134
|
sample_request:
|
|
336
|
-
session_id: "
|
|
337
|
-
message: "
|
|
338
|
-
|
|
339
|
-
context_inputs:
|
|
340
|
-
- key: "handoff_session_id"
|
|
341
|
-
inject_at: "session_id"
|
|
135
|
+
session_id: "si_nova_ev_001"
|
|
136
|
+
message: "What are the best electric vehicles for long road trips?"
|
|
342
137
|
|
|
343
138
|
validations:
|
|
344
|
-
- check:
|
|
345
|
-
|
|
346
|
-
description: "Response includes the session_id"
|
|
139
|
+
- check: response_schema
|
|
140
|
+
description: "Response matches si-send-message-response.json schema"
|
|
347
141
|
|
|
348
|
-
- id:
|
|
349
|
-
title: "
|
|
350
|
-
requires_tool: si_terminate_session
|
|
142
|
+
- id: si_terminate_session
|
|
143
|
+
title: "End the session"
|
|
351
144
|
narrative: |
|
|
352
|
-
The
|
|
353
|
-
|
|
354
|
-
|
|
145
|
+
The buyer terminates the SI session. The platform records session metrics
|
|
146
|
+
and returns a summary of the conversation including any sponsored content
|
|
147
|
+
that was delivered.
|
|
355
148
|
task: si_terminate_session
|
|
149
|
+
schema_ref: "sponsored-intelligence/si-terminate-session-request.json"
|
|
150
|
+
response_schema_ref: "sponsored-intelligence/si-terminate-session-response.json"
|
|
151
|
+
doc_ref: "/sponsored-intelligence/tasks/si_terminate_session"
|
|
152
|
+
comply_scenario: si_handoff
|
|
356
153
|
stateful: true
|
|
357
154
|
expected: |
|
|
358
|
-
|
|
359
|
-
-
|
|
360
|
-
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
- payload: additional transaction data
|
|
364
|
-
- expires_at: when the handoff expires
|
|
365
|
-
|
|
366
|
-
If the agent does not support transaction handoff, terminated: true
|
|
367
|
-
without acp_handoff is acceptable.
|
|
155
|
+
Terminate the session and return a summary:
|
|
156
|
+
- session_id: confirms which session was terminated
|
|
157
|
+
- status: terminated
|
|
158
|
+
- Session metrics (duration, messages exchanged)
|
|
159
|
+
- Sponsored content delivery summary
|
|
368
160
|
|
|
369
161
|
sample_request:
|
|
370
|
-
session_id: "
|
|
371
|
-
reason: "handoff_transaction"
|
|
372
|
-
termination_context:
|
|
373
|
-
summary: "Terminating for handoff validation"
|
|
374
|
-
transaction_intent:
|
|
375
|
-
intent: "purchase"
|
|
376
|
-
|
|
377
|
-
context_inputs:
|
|
378
|
-
- key: "handoff_session_id"
|
|
379
|
-
inject_at: "session_id"
|
|
162
|
+
session_id: "si_nova_ev_001"
|
|
380
163
|
|
|
381
164
|
validations:
|
|
382
|
-
- check:
|
|
383
|
-
|
|
384
|
-
description: "Response confirms termination"
|
|
165
|
+
- check: response_schema
|
|
166
|
+
description: "Response matches si-terminate-session-response.json schema"
|
|
@@ -3,14 +3,10 @@ version: "1.0.0"
|
|
|
3
3
|
title: "Marketplace signal agent"
|
|
4
4
|
category: signal_marketplace
|
|
5
5
|
summary: "Signal agent that resells third-party data provider signals with verifiable catalog provenance."
|
|
6
|
-
platform_types:
|
|
7
|
-
- pmax_platform
|
|
8
|
-
- ai_ad_network
|
|
9
|
-
- ai_platform
|
|
10
|
-
|
|
11
6
|
track: signals
|
|
12
7
|
required_tools:
|
|
13
8
|
- get_signals
|
|
9
|
+
|
|
14
10
|
narrative: |
|
|
15
11
|
You operate a signal marketplace — an intermediary that aggregates audience data from
|
|
16
12
|
multiple third-party providers and makes it available to buyers through a single interface.
|
|
@@ -72,6 +68,7 @@ phases:
|
|
|
72
68
|
schema_ref: "signals/get-signals-request.json"
|
|
73
69
|
response_schema_ref: "signals/get-signals-response.json"
|
|
74
70
|
doc_ref: "/signals/tasks/get_signals"
|
|
71
|
+
comply_scenario: signals_flow
|
|
75
72
|
stateful: false
|
|
76
73
|
expected: |
|
|
77
74
|
Return matching signals from multiple data providers. Each signal must include:
|
|
@@ -111,6 +108,7 @@ phases:
|
|
|
111
108
|
schema_ref: "signals/get-signals-request.json"
|
|
112
109
|
response_schema_ref: "signals/get-signals-response.json"
|
|
113
110
|
doc_ref: "/signals/tasks/get_signals"
|
|
111
|
+
comply_scenario: signals_flow
|
|
114
112
|
stateful: false
|
|
115
113
|
expected: |
|
|
116
114
|
Return the exact signals requested, with full metadata and pricing.
|
|
@@ -157,6 +155,7 @@ phases:
|
|
|
157
155
|
schema_ref: "signals/get-signals-request.json"
|
|
158
156
|
response_schema_ref: "signals/get-signals-response.json"
|
|
159
157
|
doc_ref: "/signals/data-providers"
|
|
158
|
+
comply_scenario: signals_flow
|
|
160
159
|
stateful: false
|
|
161
160
|
expected: |
|
|
162
161
|
Return the requested signal with verifiable provenance metadata:
|
|
@@ -201,6 +200,7 @@ phases:
|
|
|
201
200
|
schema_ref: "signals/activate-signal-request.json"
|
|
202
201
|
response_schema_ref: "signals/activate-signal-response.json"
|
|
203
202
|
doc_ref: "/signals/tasks/activate_signal"
|
|
203
|
+
comply_scenario: signals_flow
|
|
204
204
|
stateful: true
|
|
205
205
|
expected: |
|
|
206
206
|
Return a deployment with:
|
|
@@ -252,6 +252,7 @@ phases:
|
|
|
252
252
|
schema_ref: "signals/activate-signal-request.json"
|
|
253
253
|
response_schema_ref: "signals/activate-signal-response.json"
|
|
254
254
|
doc_ref: "/signals/tasks/activate_signal"
|
|
255
|
+
comply_scenario: signals_flow
|
|
255
256
|
stateful: true
|
|
256
257
|
expected: |
|
|
257
258
|
Return a deployment with:
|
|
@@ -3,14 +3,10 @@ version: "1.0.0"
|
|
|
3
3
|
title: "Owned signal agent"
|
|
4
4
|
category: signal_owned
|
|
5
5
|
summary: "Signal agent serving first-party or proprietary audience data without external catalog verification."
|
|
6
|
-
platform_types:
|
|
7
|
-
- retail_media
|
|
8
|
-
- social_platform
|
|
9
|
-
- pmax_platform
|
|
10
|
-
|
|
11
6
|
track: signals
|
|
12
7
|
required_tools:
|
|
13
8
|
- get_signals
|
|
9
|
+
|
|
14
10
|
narrative: |
|
|
15
11
|
You operate a first-party data platform — a retailer CDP, publisher contextual data
|
|
16
12
|
provider, or proprietary audience platform. Your signals are agent-native: they come
|
|
@@ -69,6 +65,7 @@ phases:
|
|
|
69
65
|
schema_ref: "signals/get-signals-request.json"
|
|
70
66
|
response_schema_ref: "signals/get-signals-response.json"
|
|
71
67
|
doc_ref: "/signals/tasks/get_signals"
|
|
68
|
+
comply_scenario: signals_flow
|
|
72
69
|
stateful: false
|
|
73
70
|
expected: |
|
|
74
71
|
Return matching signals from your proprietary data. Each signal must include:
|
|
@@ -105,6 +102,7 @@ phases:
|
|
|
105
102
|
schema_ref: "signals/get-signals-request.json"
|
|
106
103
|
response_schema_ref: "signals/get-signals-response.json"
|
|
107
104
|
doc_ref: "/signals/tasks/get_signals"
|
|
105
|
+
comply_scenario: signals_flow
|
|
108
106
|
stateful: false
|
|
109
107
|
expected: |
|
|
110
108
|
Return only signals matching the filter criteria. If no signals match,
|
|
@@ -141,6 +139,7 @@ phases:
|
|
|
141
139
|
schema_ref: "signals/activate-signal-request.json"
|
|
142
140
|
response_schema_ref: "signals/activate-signal-response.json"
|
|
143
141
|
doc_ref: "/signals/tasks/activate_signal"
|
|
142
|
+
comply_scenario: signals_flow
|
|
144
143
|
stateful: true
|
|
145
144
|
expected: |
|
|
146
145
|
Return a deployment with:
|
|
@@ -184,6 +183,7 @@ phases:
|
|
|
184
183
|
schema_ref: "signals/activate-signal-request.json"
|
|
185
184
|
response_schema_ref: "signals/activate-signal-response.json"
|
|
186
185
|
doc_ref: "/signals/tasks/activate_signal"
|
|
186
|
+
comply_scenario: signals_flow
|
|
187
187
|
stateful: true
|
|
188
188
|
expected: |
|
|
189
189
|
Return a deployment with:
|