@adcp/client 3.8.0 → 3.9.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 (86) hide show
  1. package/bin/adcp.js +536 -20
  2. package/dist/lib/agents/index.generated.d.ts +9 -1
  3. package/dist/lib/agents/index.generated.d.ts.map +1 -1
  4. package/dist/lib/agents/index.generated.js +12 -0
  5. package/dist/lib/agents/index.generated.js.map +1 -1
  6. package/dist/lib/auth/index.d.ts +1 -0
  7. package/dist/lib/auth/index.d.ts.map +1 -1
  8. package/dist/lib/auth/index.js +16 -0
  9. package/dist/lib/auth/index.js.map +1 -1
  10. package/dist/lib/auth/oauth/CLIFlowHandler.d.ts +61 -0
  11. package/dist/lib/auth/oauth/CLIFlowHandler.d.ts.map +1 -0
  12. package/dist/lib/auth/oauth/CLIFlowHandler.js +287 -0
  13. package/dist/lib/auth/oauth/CLIFlowHandler.js.map +1 -0
  14. package/dist/lib/auth/oauth/MCPOAuthProvider.d.ts +126 -0
  15. package/dist/lib/auth/oauth/MCPOAuthProvider.d.ts.map +1 -0
  16. package/dist/lib/auth/oauth/MCPOAuthProvider.js +236 -0
  17. package/dist/lib/auth/oauth/MCPOAuthProvider.js.map +1 -0
  18. package/dist/lib/auth/oauth/index.d.ts +104 -0
  19. package/dist/lib/auth/oauth/index.d.ts.map +1 -0
  20. package/dist/lib/auth/oauth/index.js +168 -0
  21. package/dist/lib/auth/oauth/index.js.map +1 -0
  22. package/dist/lib/auth/oauth/types.d.ts +114 -0
  23. package/dist/lib/auth/oauth/types.d.ts.map +1 -0
  24. package/dist/lib/auth/oauth/types.js +104 -0
  25. package/dist/lib/auth/oauth/types.js.map +1 -0
  26. package/dist/lib/core/TaskExecutor.d.ts +7 -0
  27. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  28. package/dist/lib/core/TaskExecutor.js +46 -10
  29. package/dist/lib/core/TaskExecutor.js.map +1 -1
  30. package/dist/lib/index.d.ts +1 -0
  31. package/dist/lib/index.d.ts.map +1 -1
  32. package/dist/lib/index.js +11 -3
  33. package/dist/lib/index.js.map +1 -1
  34. package/dist/lib/protocols/index.d.ts +2 -1
  35. package/dist/lib/protocols/index.d.ts.map +1 -1
  36. package/dist/lib/protocols/index.js +4 -1
  37. package/dist/lib/protocols/index.js.map +1 -1
  38. package/dist/lib/protocols/mcp.d.ts +80 -0
  39. package/dist/lib/protocols/mcp.d.ts.map +1 -1
  40. package/dist/lib/protocols/mcp.js +158 -0
  41. package/dist/lib/protocols/mcp.js.map +1 -1
  42. package/dist/lib/testing/agent-tester.d.ts +1 -1
  43. package/dist/lib/testing/agent-tester.d.ts.map +1 -1
  44. package/dist/lib/testing/agent-tester.js +39 -1
  45. package/dist/lib/testing/agent-tester.js.map +1 -1
  46. package/dist/lib/testing/index.d.ts +1 -1
  47. package/dist/lib/testing/index.d.ts.map +1 -1
  48. package/dist/lib/testing/index.js +11 -1
  49. package/dist/lib/testing/index.js.map +1 -1
  50. package/dist/lib/testing/scenarios/capabilities.d.ts +27 -0
  51. package/dist/lib/testing/scenarios/capabilities.d.ts.map +1 -0
  52. package/dist/lib/testing/scenarios/capabilities.js +250 -0
  53. package/dist/lib/testing/scenarios/capabilities.js.map +1 -0
  54. package/dist/lib/testing/scenarios/governance.d.ts +35 -0
  55. package/dist/lib/testing/scenarios/governance.d.ts.map +1 -0
  56. package/dist/lib/testing/scenarios/governance.js +428 -0
  57. package/dist/lib/testing/scenarios/governance.js.map +1 -0
  58. package/dist/lib/testing/scenarios/index.d.ts +3 -0
  59. package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
  60. package/dist/lib/testing/scenarios/index.js +15 -1
  61. package/dist/lib/testing/scenarios/index.js.map +1 -1
  62. package/dist/lib/testing/scenarios/sponsored-intelligence.d.ts +34 -0
  63. package/dist/lib/testing/scenarios/sponsored-intelligence.d.ts.map +1 -0
  64. package/dist/lib/testing/scenarios/sponsored-intelligence.js +318 -0
  65. package/dist/lib/testing/scenarios/sponsored-intelligence.js.map +1 -0
  66. package/dist/lib/testing/types.d.ts +9 -1
  67. package/dist/lib/testing/types.d.ts.map +1 -1
  68. package/dist/lib/types/adcp.d.ts +47 -1
  69. package/dist/lib/types/adcp.d.ts.map +1 -1
  70. package/dist/lib/types/core.generated.d.ts +393 -164
  71. package/dist/lib/types/core.generated.d.ts.map +1 -1
  72. package/dist/lib/types/core.generated.js +2 -2
  73. package/dist/lib/types/core.generated.js.map +1 -1
  74. package/dist/lib/types/schemas.generated.d.ts +1275 -845
  75. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  76. package/dist/lib/types/schemas.generated.js +300 -198
  77. package/dist/lib/types/schemas.generated.js.map +1 -1
  78. package/dist/lib/types/tools.generated.d.ts +461 -167
  79. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  80. package/dist/lib/types/tools.generated.js +1 -1
  81. package/dist/lib/types/tools.generated.js.map +1 -1
  82. package/dist/lib/version.d.ts +5 -5
  83. package/dist/lib/version.d.ts.map +1 -1
  84. package/dist/lib/version.js +5 -5
  85. package/dist/lib/version.js.map +1 -1
  86. package/package.json +2 -2
@@ -0,0 +1,428 @@
1
+ "use strict";
2
+ /**
3
+ * Governance Protocol Testing Scenarios (v3)
4
+ *
5
+ * Tests governance agent capabilities including:
6
+ * - Property list CRUD operations
7
+ * - Content standards management
8
+ * - Content calibration
9
+ * - Delivery validation
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.testGovernancePropertyLists = testGovernancePropertyLists;
13
+ exports.testGovernanceContentStandards = testGovernanceContentStandards;
14
+ exports.hasGovernanceTools = hasGovernanceTools;
15
+ const client_1 = require("../client");
16
+ const capabilities_1 = require("../../utils/capabilities");
17
+ // Property list tools
18
+ const PROPERTY_LIST_TOOLS = [
19
+ 'create_property_list',
20
+ 'get_property_list',
21
+ 'update_property_list',
22
+ 'list_property_lists',
23
+ 'delete_property_list',
24
+ ];
25
+ // Content standards tools
26
+ const CONTENT_STANDARDS_TOOLS = [
27
+ 'list_content_standards',
28
+ 'get_content_standards',
29
+ 'create_content_standards',
30
+ 'update_content_standards',
31
+ 'calibrate_content',
32
+ 'validate_content_delivery',
33
+ ];
34
+ /**
35
+ * Test: Governance Property Lists
36
+ *
37
+ * Flow: create_property_list -> get_property_list -> update_property_list
38
+ * -> list_property_lists -> delete_property_list -> verify deletion
39
+ */
40
+ async function testGovernancePropertyLists(agentUrl, options) {
41
+ const steps = [];
42
+ const client = (0, client_1.createTestClient)(agentUrl, options.protocol || 'mcp', options);
43
+ // Discover agent profile
44
+ const { profile, step: profileStep } = await (0, client_1.discoverAgentProfile)(client);
45
+ steps.push(profileStep);
46
+ if (!profileStep.passed) {
47
+ return { steps, profile };
48
+ }
49
+ // Check if agent supports any property list tools
50
+ const hasPropertyListTools = PROPERTY_LIST_TOOLS.some(t => profile.tools.includes(t));
51
+ if (!hasPropertyListTools) {
52
+ steps.push({
53
+ step: 'Property list support check',
54
+ passed: false,
55
+ duration_ms: 0,
56
+ error: 'Agent does not support property list tools (governance protocol)',
57
+ details: `Required tools: ${PROPERTY_LIST_TOOLS.join(', ')}. Available: ${profile.tools.join(', ')}`,
58
+ });
59
+ return { steps, profile };
60
+ }
61
+ profile.supports_governance = true;
62
+ let createdListId;
63
+ let authToken;
64
+ // Test: create_property_list
65
+ if (profile.tools.includes('create_property_list')) {
66
+ const listName = options.property_list_name || `E2E Test List ${Date.now()}`;
67
+ const { result, step } = await (0, client_1.runStep)('Create property list', 'create_property_list', async () => client.executeTask('create_property_list', {
68
+ name: listName,
69
+ description: 'E2E test property list for governance testing',
70
+ base_properties: {
71
+ include: [
72
+ { identifier_type: 'domain', identifier_value: 'example.com' },
73
+ { identifier_type: 'domain', identifier_value: 'test.example.com' },
74
+ ],
75
+ },
76
+ filters: {
77
+ garm_categories: {
78
+ exclude: ['adult', 'arms'],
79
+ },
80
+ mfa_thresholds: {
81
+ min_score: 0.7,
82
+ },
83
+ },
84
+ brand_manifest: options.brand_manifest || {
85
+ name: 'E2E Test Brand',
86
+ url: 'https://test.example.com',
87
+ },
88
+ }));
89
+ if (result?.success && result?.data) {
90
+ const data = result.data;
91
+ createdListId = data.list?.list_id || data.list_id;
92
+ authToken = data.auth_token;
93
+ step.created_id = createdListId;
94
+ step.details = `Created list: ${createdListId}`;
95
+ step.response_preview = JSON.stringify({
96
+ list_id: createdListId,
97
+ name: data.list?.name || listName,
98
+ has_auth_token: !!authToken,
99
+ }, null, 2);
100
+ }
101
+ else if (result && !result.success) {
102
+ step.passed = false;
103
+ step.error = result.error || 'create_property_list failed';
104
+ }
105
+ steps.push(step);
106
+ }
107
+ // Test: get_property_list
108
+ if (profile.tools.includes('get_property_list') && createdListId) {
109
+ const { result, step } = await (0, client_1.runStep)('Get property list', 'get_property_list', async () => client.executeTask('get_property_list', {
110
+ list_id: createdListId,
111
+ resolve: true,
112
+ max_results: 10,
113
+ }));
114
+ if (result?.success && result?.data) {
115
+ const data = result.data;
116
+ step.details = `Retrieved list with ${data.total_count || 0} properties`;
117
+ step.response_preview = JSON.stringify({
118
+ list_id: data.list?.list_id,
119
+ name: data.list?.name,
120
+ property_count: data.total_count,
121
+ has_identifiers: !!data.identifiers?.length,
122
+ }, null, 2);
123
+ }
124
+ else if (result && !result.success) {
125
+ step.passed = false;
126
+ step.error = result.error || 'get_property_list failed';
127
+ }
128
+ steps.push(step);
129
+ }
130
+ // Test: update_property_list
131
+ if (profile.tools.includes('update_property_list') && createdListId) {
132
+ const { result, step } = await (0, client_1.runStep)('Update property list', 'update_property_list', async () => client.executeTask('update_property_list', {
133
+ list_id: createdListId,
134
+ auth_token: authToken,
135
+ description: 'Updated E2E test property list',
136
+ base_properties: {
137
+ include: [
138
+ { identifier_type: 'domain', identifier_value: 'example.com' },
139
+ { identifier_type: 'domain', identifier_value: 'test.example.com' },
140
+ { identifier_type: 'domain', identifier_value: 'new.example.com' },
141
+ ],
142
+ },
143
+ filters: {
144
+ garm_categories: {
145
+ exclude: ['adult', 'arms', 'gambling'],
146
+ },
147
+ mfa_thresholds: {
148
+ min_score: 0.8,
149
+ },
150
+ },
151
+ }));
152
+ if (result?.success && result?.data) {
153
+ const data = result.data;
154
+ step.details = 'Property list updated successfully';
155
+ step.response_preview = JSON.stringify({
156
+ list_id: data.list?.list_id,
157
+ updated_at: data.list?.updated_at,
158
+ }, null, 2);
159
+ }
160
+ else if (result && !result.success) {
161
+ step.passed = false;
162
+ step.error = result.error || 'update_property_list failed';
163
+ }
164
+ steps.push(step);
165
+ }
166
+ // Test: list_property_lists
167
+ if (profile.tools.includes('list_property_lists')) {
168
+ const { result, step } = await (0, client_1.runStep)('List property lists', 'list_property_lists', async () => client.executeTask('list_property_lists', {
169
+ max_results: 10,
170
+ }));
171
+ if (result?.success && result?.data) {
172
+ const data = result.data;
173
+ const lists = data.lists || [];
174
+ step.details = `Found ${lists.length} property list(s)`;
175
+ step.response_preview = JSON.stringify({
176
+ total_count: data.total_count,
177
+ returned_count: data.returned_count || lists.length,
178
+ lists: lists.slice(0, 3).map((l) => ({
179
+ list_id: l.list_id,
180
+ name: l.name,
181
+ })),
182
+ }, null, 2);
183
+ }
184
+ else if (result && !result.success) {
185
+ step.passed = false;
186
+ step.error = result.error || 'list_property_lists failed';
187
+ }
188
+ steps.push(step);
189
+ }
190
+ // Test: delete_property_list
191
+ if (profile.tools.includes('delete_property_list') && createdListId && options.dry_run === false) {
192
+ const { result, step } = await (0, client_1.runStep)('Delete property list', 'delete_property_list', async () => client.executeTask('delete_property_list', {
193
+ list_id: createdListId,
194
+ auth_token: authToken,
195
+ }));
196
+ if (result?.success && result?.data) {
197
+ const data = result.data;
198
+ step.details = data.deleted ? 'Property list deleted' : 'Deletion returned but not confirmed';
199
+ step.response_preview = JSON.stringify({
200
+ deleted: data.deleted,
201
+ list_id: data.list_id,
202
+ }, null, 2);
203
+ }
204
+ else if (result && !result.success) {
205
+ step.passed = false;
206
+ step.error = result.error || 'delete_property_list failed';
207
+ }
208
+ steps.push(step);
209
+ // Test: get deleted list (should fail)
210
+ if (profile.tools.includes('get_property_list')) {
211
+ const { result: errorResult, step: errorStep } = await (0, client_1.runStep)('Get deleted list (error expected)', 'get_property_list', async () => client.executeTask('get_property_list', {
212
+ list_id: createdListId,
213
+ }));
214
+ if (errorResult?.success) {
215
+ errorStep.passed = false;
216
+ errorStep.error = 'Expected error for deleted list but got success';
217
+ }
218
+ else {
219
+ errorStep.passed = true;
220
+ errorStep.details = 'Correctly rejected deleted list access';
221
+ }
222
+ steps.push(errorStep);
223
+ }
224
+ }
225
+ else if (profile.tools.includes('delete_property_list') && createdListId) {
226
+ steps.push({
227
+ step: 'Delete property list',
228
+ task: 'delete_property_list',
229
+ passed: true,
230
+ duration_ms: 0,
231
+ details: 'Skipped in dry-run mode',
232
+ });
233
+ }
234
+ return { steps, profile };
235
+ }
236
+ /**
237
+ * Test: Governance Content Standards
238
+ *
239
+ * Flow: list_content_standards -> get_content_standards -> calibrate_content
240
+ * -> validate_content_delivery
241
+ */
242
+ async function testGovernanceContentStandards(agentUrl, options) {
243
+ const steps = [];
244
+ const client = (0, client_1.createTestClient)(agentUrl, options.protocol || 'mcp', options);
245
+ // Discover agent profile
246
+ const { profile, step: profileStep } = await (0, client_1.discoverAgentProfile)(client);
247
+ steps.push(profileStep);
248
+ if (!profileStep.passed) {
249
+ return { steps, profile };
250
+ }
251
+ // Check if agent supports any content standards tools
252
+ const hasContentStandardsTools = CONTENT_STANDARDS_TOOLS.some(t => profile.tools.includes(t));
253
+ if (!hasContentStandardsTools) {
254
+ steps.push({
255
+ step: 'Content standards support check',
256
+ passed: false,
257
+ duration_ms: 0,
258
+ error: 'Agent does not support content standards tools (governance protocol)',
259
+ details: `Required tools: ${CONTENT_STANDARDS_TOOLS.join(', ')}. Available: ${profile.tools.join(', ')}`,
260
+ });
261
+ return { steps, profile };
262
+ }
263
+ profile.supports_governance = true;
264
+ let discoveredStandardsId;
265
+ // Test: list_content_standards
266
+ if (profile.tools.includes('list_content_standards')) {
267
+ const { result, step } = await (0, client_1.runStep)('List content standards', 'list_content_standards', async () => client.executeTask('list_content_standards', {
268
+ context: 'E2E testing - list available brand safety configurations',
269
+ max_results: 10,
270
+ }));
271
+ if (result?.success && result?.data) {
272
+ const data = result.data;
273
+ const standards = data.standards || [];
274
+ if (standards.length > 0) {
275
+ discoveredStandardsId = standards[0].standards_id;
276
+ }
277
+ step.details = `Found ${standards.length} content standard(s)`;
278
+ step.response_preview = JSON.stringify({
279
+ standards_count: standards.length,
280
+ sample_standards: standards.slice(0, 3).map((s) => ({
281
+ standards_id: s.standards_id,
282
+ name: s.name,
283
+ provider: s.provider,
284
+ })),
285
+ }, null, 2);
286
+ }
287
+ else if (result && !result.success) {
288
+ // Not all agents support content standards, so treat missing support as passing
289
+ const error = result.error || '';
290
+ if (error.includes('not supported') || error.includes('not implemented')) {
291
+ step.passed = true;
292
+ step.details = 'Content standards not supported by this agent (expected for some agents)';
293
+ }
294
+ else {
295
+ step.passed = false;
296
+ step.error = result.error || 'list_content_standards failed';
297
+ }
298
+ }
299
+ steps.push(step);
300
+ }
301
+ // Test: get_content_standards (if we found one)
302
+ const standardsIdToTest = options.content_standards_id || discoveredStandardsId;
303
+ if (profile.tools.includes('get_content_standards') && standardsIdToTest) {
304
+ const { result, step } = await (0, client_1.runStep)('Get content standards', 'get_content_standards', async () => client.executeTask('get_content_standards', {
305
+ standards_id: standardsIdToTest,
306
+ }));
307
+ if (result?.success && result?.data) {
308
+ const data = result.data;
309
+ step.details = `Retrieved standards: ${data.standards?.name || standardsIdToTest}`;
310
+ step.response_preview = JSON.stringify({
311
+ standards_id: data.standards?.standards_id,
312
+ name: data.standards?.name,
313
+ features_count: data.standards?.features?.length || 0,
314
+ }, null, 2);
315
+ }
316
+ else if (result && !result.success) {
317
+ step.passed = false;
318
+ step.error = result.error || 'get_content_standards failed';
319
+ }
320
+ steps.push(step);
321
+ }
322
+ // Test: calibrate_content
323
+ if (profile.tools.includes('calibrate_content')) {
324
+ const { result, step } = await (0, client_1.runStep)('Calibrate content', 'calibrate_content', async () => client.executeTask('calibrate_content', {
325
+ context: 'E2E testing - evaluate sample content for brand safety',
326
+ standards_id: standardsIdToTest,
327
+ artifacts: [
328
+ {
329
+ artifact_id: 'test-artifact-1',
330
+ artifact_type: 'webpage',
331
+ url: 'https://example.com/article/safe-content',
332
+ title: 'Safe Test Article',
333
+ },
334
+ {
335
+ artifact_id: 'test-artifact-2',
336
+ artifact_type: 'webpage',
337
+ url: 'https://example.com/article/test-content',
338
+ title: 'Another Test Article',
339
+ },
340
+ ],
341
+ feedback_type: 'binary',
342
+ }));
343
+ if (result?.success && result?.data) {
344
+ const data = result.data;
345
+ step.details = `Calibration session: ${data.session_status || 'completed'}`;
346
+ step.response_preview = JSON.stringify({
347
+ session_id: data.session_id,
348
+ session_status: data.session_status,
349
+ pending_artifacts: data.pending_artifacts?.length || 0,
350
+ evaluated_artifacts: data.evaluated_artifacts?.length || 0,
351
+ }, null, 2);
352
+ }
353
+ else if (result && !result.success) {
354
+ const error = result.error || '';
355
+ if (error.includes('not supported') || error.includes('not implemented')) {
356
+ step.passed = true;
357
+ step.details = 'Content calibration not supported by this agent';
358
+ }
359
+ else {
360
+ step.passed = false;
361
+ step.error = result.error || 'calibrate_content failed';
362
+ }
363
+ }
364
+ steps.push(step);
365
+ }
366
+ // Test: validate_content_delivery
367
+ if (profile.tools.includes('validate_content_delivery')) {
368
+ const { result, step } = await (0, client_1.runStep)('Validate content delivery', 'validate_content_delivery', async () => client.executeTask('validate_content_delivery', {
369
+ context: 'E2E testing - validate delivery records against content standards',
370
+ standards_id: standardsIdToTest,
371
+ records: [
372
+ {
373
+ record_id: 'test-record-1',
374
+ artifact: {
375
+ artifact_id: 'test-artifact-1',
376
+ artifact_type: 'webpage',
377
+ url: 'https://example.com/article/delivered-content',
378
+ },
379
+ delivered_at: new Date().toISOString(),
380
+ },
381
+ ],
382
+ }));
383
+ if (result?.success && result?.data) {
384
+ const data = result.data;
385
+ step.details = `Validated ${data.summary?.total_records || 0} record(s)`;
386
+ step.response_preview = JSON.stringify({
387
+ total_records: data.summary?.total_records,
388
+ passed_records: data.summary?.passed_records,
389
+ failed_records: data.summary?.failed_records,
390
+ }, null, 2);
391
+ }
392
+ else if (result && !result.success) {
393
+ const error = result.error || '';
394
+ if (error.includes('not supported') || error.includes('not implemented')) {
395
+ step.passed = true;
396
+ step.details = 'Content delivery validation not supported by this agent';
397
+ }
398
+ else {
399
+ step.passed = false;
400
+ step.error = result.error || 'validate_content_delivery failed';
401
+ }
402
+ }
403
+ steps.push(step);
404
+ }
405
+ // Test: get_content_standards with invalid ID (error expected)
406
+ if (profile.tools.includes('get_content_standards')) {
407
+ const { result: errorResult, step: errorStep } = await (0, client_1.runStep)('Get invalid content standards (error expected)', 'get_content_standards', async () => client.executeTask('get_content_standards', {
408
+ standards_id: 'INVALID_STANDARDS_ID_DOES_NOT_EXIST_12345',
409
+ }));
410
+ if (errorResult?.success) {
411
+ errorStep.passed = false;
412
+ errorStep.error = 'Expected error for invalid standards_id but got success';
413
+ }
414
+ else {
415
+ errorStep.passed = true;
416
+ errorStep.details = 'Correctly rejected invalid standards_id';
417
+ }
418
+ steps.push(errorStep);
419
+ }
420
+ return { steps, profile };
421
+ }
422
+ /**
423
+ * Check if agent has any governance protocol tools
424
+ */
425
+ function hasGovernanceTools(tools) {
426
+ return capabilities_1.GOVERNANCE_TOOLS.some(t => tools.includes(t));
427
+ }
428
+ //# sourceMappingURL=governance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/governance.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,7 @@ export { testCreateMediaBuy, testFullSalesFlow, testCreativeSync, testCreativeIn
9
9
  export { testCreativeFlow } from './creative';
10
10
  export { testSignalsFlow } from './signals';
11
11
  export { testErrorHandling, testValidation, testPricingEdgeCases, testTemporalValidation, testBehaviorAnalysis, testResponseConsistency, } from './edge-cases';
12
+ export { testGovernancePropertyLists, testGovernanceContentStandards, hasGovernanceTools } from './governance';
13
+ export { testSISessionLifecycle, testSIAvailability, hasSITools } from './sponsored-intelligence';
14
+ export { testCapabilityDiscovery, likelySupportsV3 } from './capabilities';
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG/G,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGlG,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Re-exports all test scenarios for easy importing.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.testResponseConsistency = exports.testBehaviorAnalysis = exports.testTemporalValidation = exports.testPricingEdgeCases = exports.testValidation = exports.testErrorHandling = exports.testSignalsFlow = exports.testCreativeFlow = exports.buildCreateMediaBuyRequest = exports.selectPricingOption = exports.selectProduct = exports.testCreativeInline = exports.testCreativeSync = exports.testFullSalesFlow = exports.testCreateMediaBuy = exports.testDiscovery = exports.testHealthCheck = void 0;
8
+ exports.likelySupportsV3 = exports.testCapabilityDiscovery = exports.hasSITools = exports.testSIAvailability = exports.testSISessionLifecycle = exports.hasGovernanceTools = exports.testGovernanceContentStandards = exports.testGovernancePropertyLists = exports.testResponseConsistency = exports.testBehaviorAnalysis = exports.testTemporalValidation = exports.testPricingEdgeCases = exports.testValidation = exports.testErrorHandling = exports.testSignalsFlow = exports.testCreativeFlow = exports.buildCreateMediaBuyRequest = exports.selectPricingOption = exports.selectProduct = exports.testCreativeInline = exports.testCreativeSync = exports.testFullSalesFlow = exports.testCreateMediaBuy = exports.testDiscovery = exports.testHealthCheck = void 0;
9
9
  // Health check
10
10
  var health_1 = require("./health");
11
11
  Object.defineProperty(exports, "testHealthCheck", { enumerable: true, get: function () { return health_1.testHealthCheck; } });
@@ -35,4 +35,18 @@ Object.defineProperty(exports, "testPricingEdgeCases", { enumerable: true, get:
35
35
  Object.defineProperty(exports, "testTemporalValidation", { enumerable: true, get: function () { return edge_cases_1.testTemporalValidation; } });
36
36
  Object.defineProperty(exports, "testBehaviorAnalysis", { enumerable: true, get: function () { return edge_cases_1.testBehaviorAnalysis; } });
37
37
  Object.defineProperty(exports, "testResponseConsistency", { enumerable: true, get: function () { return edge_cases_1.testResponseConsistency; } });
38
+ // v3 Governance protocol testing
39
+ var governance_1 = require("./governance");
40
+ Object.defineProperty(exports, "testGovernancePropertyLists", { enumerable: true, get: function () { return governance_1.testGovernancePropertyLists; } });
41
+ Object.defineProperty(exports, "testGovernanceContentStandards", { enumerable: true, get: function () { return governance_1.testGovernanceContentStandards; } });
42
+ Object.defineProperty(exports, "hasGovernanceTools", { enumerable: true, get: function () { return governance_1.hasGovernanceTools; } });
43
+ // v3 SI (Sponsored Intelligence) protocol testing
44
+ var sponsored_intelligence_1 = require("./sponsored-intelligence");
45
+ Object.defineProperty(exports, "testSISessionLifecycle", { enumerable: true, get: function () { return sponsored_intelligence_1.testSISessionLifecycle; } });
46
+ Object.defineProperty(exports, "testSIAvailability", { enumerable: true, get: function () { return sponsored_intelligence_1.testSIAvailability; } });
47
+ Object.defineProperty(exports, "hasSITools", { enumerable: true, get: function () { return sponsored_intelligence_1.hasSITools; } });
48
+ // v3 Capability discovery testing
49
+ var capabilities_1 = require("./capabilities");
50
+ Object.defineProperty(exports, "testCapabilityDiscovery", { enumerable: true, get: function () { return capabilities_1.testCapabilityDiscovery; } });
51
+ Object.defineProperty(exports, "likelySupportsV3", { enumerable: true, get: function () { return capabilities_1.likelySupportsV3; } });
38
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,eAAe;AACf,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAExB,YAAY;AACZ,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAEtB,yBAAyB;AACzB,yCAQqB;AAPnB,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA;AAChB,+GAAA,kBAAkB,OAAA;AAClB,0GAAA,aAAa,OAAA;AACb,gHAAA,mBAAmB,OAAA;AACnB,uHAAA,0BAA0B,OAAA;AAG5B,yBAAyB;AACzB,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA;AAEzB,wBAAwB;AACxB,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AAExB,oBAAoB;AACpB,2CAOsB;AANpB,+GAAA,iBAAiB,OAAA;AACjB,4GAAA,cAAc,OAAA;AACd,kHAAA,oBAAoB,OAAA;AACpB,oHAAA,sBAAsB,OAAA;AACtB,kHAAA,oBAAoB,OAAA;AACpB,qHAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,eAAe;AACf,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAExB,YAAY;AACZ,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAEtB,yBAAyB;AACzB,yCAQqB;AAPnB,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA;AAChB,+GAAA,kBAAkB,OAAA;AAClB,0GAAA,aAAa,OAAA;AACb,gHAAA,mBAAmB,OAAA;AACnB,uHAAA,0BAA0B,OAAA;AAG5B,yBAAyB;AACzB,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA;AAEzB,wBAAwB;AACxB,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AAExB,oBAAoB;AACpB,2CAOsB;AANpB,+GAAA,iBAAiB,OAAA;AACjB,4GAAA,cAAc,OAAA;AACd,kHAAA,oBAAoB,OAAA;AACpB,oHAAA,sBAAsB,OAAA;AACtB,kHAAA,oBAAoB,OAAA;AACpB,qHAAA,uBAAuB,OAAA;AAGzB,iCAAiC;AACjC,2CAA+G;AAAtG,yHAAA,2BAA2B,OAAA;AAAE,4HAAA,8BAA8B,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAExF,kDAAkD;AAClD,mEAAkG;AAAzF,gIAAA,sBAAsB,OAAA;AAAE,4HAAA,kBAAkB,OAAA;AAAE,oHAAA,UAAU,OAAA;AAE/D,kCAAkC;AAClC,+CAA2E;AAAlE,uHAAA,uBAAuB,OAAA;AAAE,gHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Sponsored Intelligence (SI) Protocol Testing Scenarios (v3)
3
+ *
4
+ * Tests SI agent capabilities including:
5
+ * - Session lifecycle (initiate -> messages -> terminate)
6
+ * - Offering availability checks
7
+ * - Message exchange patterns
8
+ * - Handoff flows
9
+ */
10
+ import type { TestOptions, TestStepResult, AgentProfile } from '../types';
11
+ /**
12
+ * Test: SI Session Lifecycle
13
+ *
14
+ * Flow: si_get_offering -> si_initiate_session -> si_send_message (x2-3)
15
+ * -> si_terminate_session -> verify terminated
16
+ */
17
+ export declare function testSISessionLifecycle(agentUrl: string, options: TestOptions): Promise<{
18
+ steps: TestStepResult[];
19
+ profile?: AgentProfile;
20
+ }>;
21
+ /**
22
+ * Test: SI Availability Check
23
+ *
24
+ * Quick test to check SI offering availability without full session lifecycle
25
+ */
26
+ export declare function testSIAvailability(agentUrl: string, options: TestOptions): Promise<{
27
+ steps: TestStepResult[];
28
+ profile?: AgentProfile;
29
+ }>;
30
+ /**
31
+ * Check if agent has any SI protocol tools
32
+ */
33
+ export declare function hasSITools(tools: string[]): boolean;
34
+ //# sourceMappingURL=sponsored-intelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sponsored-intelligence.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/scenarios/sponsored-intelligence.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,UAAU,CAAC;AAItF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CAuP9D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CA4G9D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAEnD"}