@adcp/client 3.7.0 → 3.8.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 (103) hide show
  1. package/bin/adcp.js +42 -3
  2. package/dist/lib/adapters/content-standards-adapter.d.ts +106 -0
  3. package/dist/lib/adapters/content-standards-adapter.d.ts.map +1 -0
  4. package/dist/lib/adapters/content-standards-adapter.js +199 -0
  5. package/dist/lib/adapters/content-standards-adapter.js.map +1 -0
  6. package/dist/lib/adapters/index.d.ts +18 -0
  7. package/dist/lib/adapters/index.d.ts.map +1 -0
  8. package/dist/lib/adapters/index.js +41 -0
  9. package/dist/lib/adapters/index.js.map +1 -0
  10. package/dist/lib/adapters/property-list-adapter.d.ts +123 -0
  11. package/dist/lib/adapters/property-list-adapter.d.ts.map +1 -0
  12. package/dist/lib/adapters/property-list-adapter.js +212 -0
  13. package/dist/lib/adapters/property-list-adapter.js.map +1 -0
  14. package/dist/lib/adapters/proposal-manager.d.ts +142 -0
  15. package/dist/lib/adapters/proposal-manager.d.ts.map +1 -0
  16. package/dist/lib/adapters/proposal-manager.js +184 -0
  17. package/dist/lib/adapters/proposal-manager.js.map +1 -0
  18. package/dist/lib/adapters/si-session-manager.d.ts +161 -0
  19. package/dist/lib/adapters/si-session-manager.d.ts.map +1 -0
  20. package/dist/lib/adapters/si-session-manager.js +320 -0
  21. package/dist/lib/adapters/si-session-manager.js.map +1 -0
  22. package/dist/lib/agents/index.generated.d.ts +109 -33
  23. package/dist/lib/agents/index.generated.d.ts.map +1 -1
  24. package/dist/lib/agents/index.generated.js +162 -36
  25. package/dist/lib/agents/index.generated.js.map +1 -1
  26. package/dist/lib/core/ADCPMultiAgentClient.d.ts +5 -7
  27. package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
  28. package/dist/lib/core/ADCPMultiAgentClient.js +47 -35
  29. package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -1
  30. package/dist/lib/core/AgentClient.d.ts +13 -6
  31. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  32. package/dist/lib/core/AgentClient.js +23 -13
  33. package/dist/lib/core/AgentClient.js.map +1 -1
  34. package/dist/lib/core/AsyncHandler.d.ts +1 -2
  35. package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
  36. package/dist/lib/core/AsyncHandler.js +0 -3
  37. package/dist/lib/core/AsyncHandler.js.map +1 -1
  38. package/dist/lib/core/ResponseValidator.d.ts.map +1 -1
  39. package/dist/lib/core/ResponseValidator.js +0 -1
  40. package/dist/lib/core/ResponseValidator.js.map +1 -1
  41. package/dist/lib/core/SingleAgentClient.d.ts +102 -10
  42. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  43. package/dist/lib/core/SingleAgentClient.js +244 -17
  44. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  45. package/dist/lib/discovery/property-crawler.d.ts +13 -2
  46. package/dist/lib/discovery/property-crawler.d.ts.map +1 -1
  47. package/dist/lib/discovery/property-crawler.js +48 -13
  48. package/dist/lib/discovery/property-crawler.js.map +1 -1
  49. package/dist/lib/discovery/types.d.ts +7 -1
  50. package/dist/lib/discovery/types.d.ts.map +1 -1
  51. package/dist/lib/index.d.ts +13 -4
  52. package/dist/lib/index.d.ts.map +1 -1
  53. package/dist/lib/index.js +79 -5
  54. package/dist/lib/index.js.map +1 -1
  55. package/dist/lib/types/core.generated.d.ts +507 -239
  56. package/dist/lib/types/core.generated.d.ts.map +1 -1
  57. package/dist/lib/types/core.generated.js +2 -2
  58. package/dist/lib/types/core.generated.js.map +1 -1
  59. package/dist/lib/types/schemas.generated.d.ts +7246 -2278
  60. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  61. package/dist/lib/types/schemas.generated.js +1376 -460
  62. package/dist/lib/types/schemas.generated.js.map +1 -1
  63. package/dist/lib/types/tools.generated.d.ts +3202 -551
  64. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  65. package/dist/lib/types/tools.generated.js +1 -1
  66. package/dist/lib/types/tools.generated.js.map +1 -1
  67. package/dist/lib/utils/capabilities.d.ts +98 -0
  68. package/dist/lib/utils/capabilities.d.ts.map +1 -0
  69. package/dist/lib/utils/capabilities.js +155 -0
  70. package/dist/lib/utils/capabilities.js.map +1 -0
  71. package/dist/lib/utils/creative-adapter.d.ts +87 -0
  72. package/dist/lib/utils/creative-adapter.d.ts.map +1 -0
  73. package/dist/lib/utils/creative-adapter.js +125 -0
  74. package/dist/lib/utils/creative-adapter.js.map +1 -0
  75. package/dist/lib/utils/format-assets.d.ts +4 -16
  76. package/dist/lib/utils/format-assets.d.ts.map +1 -1
  77. package/dist/lib/utils/format-assets.js +16 -14
  78. package/dist/lib/utils/format-assets.js.map +1 -1
  79. package/dist/lib/utils/format-renders.d.ts +82 -0
  80. package/dist/lib/utils/format-renders.d.ts.map +1 -0
  81. package/dist/lib/utils/format-renders.js +137 -0
  82. package/dist/lib/utils/format-renders.js.map +1 -0
  83. package/dist/lib/utils/index.d.ts +2 -1
  84. package/dist/lib/utils/index.d.ts.map +1 -1
  85. package/dist/lib/utils/index.js +13 -3
  86. package/dist/lib/utils/index.js.map +1 -1
  87. package/dist/lib/utils/preview-normalizer.d.ts +109 -0
  88. package/dist/lib/utils/preview-normalizer.d.ts.map +1 -0
  89. package/dist/lib/utils/preview-normalizer.js +122 -0
  90. package/dist/lib/utils/preview-normalizer.js.map +1 -0
  91. package/dist/lib/utils/pricing-adapter.d.ts +121 -0
  92. package/dist/lib/utils/pricing-adapter.d.ts.map +1 -0
  93. package/dist/lib/utils/pricing-adapter.js +213 -0
  94. package/dist/lib/utils/pricing-adapter.js.map +1 -0
  95. package/dist/lib/utils/response-unwrapper.d.ts +2 -2
  96. package/dist/lib/utils/response-unwrapper.d.ts.map +1 -1
  97. package/dist/lib/utils/response-unwrapper.js +2 -2
  98. package/dist/lib/utils/response-unwrapper.js.map +1 -1
  99. package/dist/lib/version.d.ts +15 -7
  100. package/dist/lib/version.d.ts.map +1 -1
  101. package/dist/lib/version.js +20 -11
  102. package/dist/lib/version.js.map +1 -1
  103. package/package.json +3 -3
package/bin/adcp.js CHANGED
@@ -125,14 +125,30 @@ function extractProtocolMessage(conversation, protocol) {
125
125
  }
126
126
 
127
127
  /**
128
- * Display agent info - just calls library method
128
+ * Display agent info - includes capabilities detection for v3.0
129
129
  */
130
130
  async function displayAgentInfo(agentConfig, jsonOutput) {
131
131
  const client = new AdCPClient([agentConfig]);
132
- const info = await client.agent(agentConfig.id).getAgentInfo();
132
+ const agentClient = client.agent(agentConfig.id);
133
+ const info = await agentClient.getAgentInfo();
134
+
135
+ // Try to get capabilities (v3.0 feature detection)
136
+ let capabilities = null;
137
+ try {
138
+ if (typeof agentClient.getCapabilities === 'function') {
139
+ capabilities = await agentClient.getCapabilities();
140
+ }
141
+ } catch (e) {
142
+ // Capabilities detection failed - continue without
143
+ }
133
144
 
134
145
  if (jsonOutput) {
135
- console.log(JSON.stringify(info, null, 2));
146
+ // Include capabilities in JSON output
147
+ const output = {
148
+ ...info,
149
+ ...(capabilities && { capabilities }),
150
+ };
151
+ console.log(JSON.stringify(output, null, 2));
136
152
  } else {
137
153
  console.log(`\n📋 Agent Information\n`);
138
154
  console.log(`Name: ${info.name}`);
@@ -141,6 +157,29 @@ async function displayAgentInfo(agentConfig, jsonOutput) {
141
157
  }
142
158
  console.log(`Protocol: ${info.protocol.toUpperCase()}`);
143
159
  console.log(`URL: ${info.url}`);
160
+
161
+ // Display capabilities if available
162
+ if (capabilities) {
163
+ console.log(`\n🔧 Capabilities:\n`);
164
+ console.log(` AdCP Version: ${capabilities.version}${capabilities._synthetic ? ' (detected)' : ''}`);
165
+ if (capabilities.protocols && capabilities.protocols.length > 0) {
166
+ console.log(` Supported Protocols: ${capabilities.protocols.join(', ')}`);
167
+ }
168
+ if (capabilities.features) {
169
+ const features = [];
170
+ if (capabilities.features.supportsCreativeAssignments) features.push('creative_assignments');
171
+ if (capabilities.features.supportsRenders) features.push('renders');
172
+ if (capabilities.features.supportsPropertyListFiltering) features.push('property_list_filtering');
173
+ if (capabilities.features.supportsContentStandards) features.push('content_standards');
174
+ if (features.length > 0) {
175
+ console.log(` v3.0 Features: ${features.join(', ')}`);
176
+ }
177
+ }
178
+ if (capabilities.extensions && capabilities.extensions.length > 0) {
179
+ console.log(` Extensions: ${capabilities.extensions.join(', ')}`);
180
+ }
181
+ }
182
+
144
183
  console.log(`\nAvailable Tools (${info.tools.length}):\n`);
145
184
 
146
185
  if (info.tools.length === 0) {
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Content Standards Adapter
3
+ *
4
+ * Server-side adapter for implementing content standards evaluation logic.
5
+ * Publishers use this to plug in their brand safety/suitability evaluation systems.
6
+ *
7
+ * This is a stub implementation that returns not-supported responses.
8
+ * Publishers should extend or replace this with their actual evaluation logic.
9
+ */
10
+ import type { ListContentStandardsRequest, ListContentStandardsResponse, GetContentStandardsRequest, GetContentStandardsResponse, CreateContentStandardsRequest, CreateContentStandardsResponse, UpdateContentStandardsRequest, UpdateContentStandardsResponse, CalibrateContentRequest, CalibrateContentResponse, ValidateContentDeliveryRequest, ValidateContentDeliveryResponse, Artifact } from '../types/tools.generated';
11
+ /**
12
+ * Content evaluation result from the adapter
13
+ */
14
+ export interface ContentEvaluationResult {
15
+ verdict: 'pass' | 'fail';
16
+ confidence?: number;
17
+ explanation?: string;
18
+ features?: {
19
+ feature_id: string;
20
+ status: 'passed' | 'failed' | 'warning' | 'unevaluated';
21
+ explanation?: string;
22
+ }[];
23
+ }
24
+ /**
25
+ * Abstract interface for content standards adapters.
26
+ * Publishers implement this to provide their evaluation logic.
27
+ */
28
+ export interface IContentStandardsAdapter {
29
+ /**
30
+ * Check if content standards are supported by this server
31
+ */
32
+ isSupported(): boolean;
33
+ /**
34
+ * List available content standards configurations
35
+ */
36
+ listStandards(request: ListContentStandardsRequest): Promise<ListContentStandardsResponse>;
37
+ /**
38
+ * Get a specific content standards configuration
39
+ */
40
+ getStandards(request: GetContentStandardsRequest): Promise<GetContentStandardsResponse>;
41
+ /**
42
+ * Create a new content standards configuration
43
+ */
44
+ createStandards(request: CreateContentStandardsRequest): Promise<CreateContentStandardsResponse>;
45
+ /**
46
+ * Update an existing content standards configuration
47
+ */
48
+ updateStandards(request: UpdateContentStandardsRequest): Promise<UpdateContentStandardsResponse>;
49
+ /**
50
+ * Calibrate content against standards (interactive feedback loop)
51
+ */
52
+ calibrateContent(request: CalibrateContentRequest): Promise<CalibrateContentResponse>;
53
+ /**
54
+ * Validate delivery records against content standards (batch validation)
55
+ */
56
+ validateContentDelivery(request: ValidateContentDeliveryRequest): Promise<ValidateContentDeliveryResponse>;
57
+ /**
58
+ * Evaluate a single artifact against standards.
59
+ * Used internally by get_products and create_media_buy to filter content.
60
+ */
61
+ evaluateArtifact(standardsId: string, artifact: Artifact): Promise<ContentEvaluationResult>;
62
+ }
63
+ /**
64
+ * Error codes for content standards operations
65
+ */
66
+ export declare const ContentStandardsErrorCodes: {
67
+ readonly NOT_SUPPORTED: "content_standards_not_supported";
68
+ readonly STANDARDS_NOT_FOUND: "standards_not_found";
69
+ readonly INVALID_STANDARDS: "invalid_standards";
70
+ readonly EVALUATION_FAILED: "evaluation_failed";
71
+ readonly QUOTA_EXCEEDED: "quota_exceeded";
72
+ };
73
+ /**
74
+ * Stub implementation of ContentStandardsAdapter.
75
+ * Returns not-supported errors for all operations.
76
+ *
77
+ * Publishers should extend this class or provide their own implementation
78
+ * that integrates with their brand safety systems.
79
+ */
80
+ export declare class ContentStandardsAdapter implements IContentStandardsAdapter {
81
+ /**
82
+ * Check if content standards are supported.
83
+ * Override this to return true when implementing real logic.
84
+ */
85
+ isSupported(): boolean;
86
+ listStandards(request: ListContentStandardsRequest): Promise<ListContentStandardsResponse>;
87
+ getStandards(request: GetContentStandardsRequest): Promise<GetContentStandardsResponse>;
88
+ createStandards(request: CreateContentStandardsRequest): Promise<CreateContentStandardsResponse>;
89
+ updateStandards(request: UpdateContentStandardsRequest): Promise<UpdateContentStandardsResponse>;
90
+ calibrateContent(request: CalibrateContentRequest): Promise<CalibrateContentResponse>;
91
+ validateContentDelivery(request: ValidateContentDeliveryRequest): Promise<ValidateContentDeliveryResponse>;
92
+ /**
93
+ * Evaluate a single artifact against content standards.
94
+ * Used by get_products and create_media_buy to filter content.
95
+ */
96
+ evaluateArtifact(standardsId: string, artifact: Artifact): Promise<ContentEvaluationResult>;
97
+ }
98
+ /**
99
+ * Helper to check if a response is an error response
100
+ */
101
+ export declare function isContentStandardsError(response: ListContentStandardsResponse | GetContentStandardsResponse | CreateContentStandardsResponse): boolean;
102
+ /**
103
+ * Default singleton instance for servers that don't need content standards
104
+ */
105
+ export declare const defaultContentStandardsAdapter: ContentStandardsAdapter;
106
+ //# sourceMappingURL=content-standards-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-standards-adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/content-standards-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,EAE/B,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;QACxD,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;CACL;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAE3F;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAExF;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAEjG;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAEjG;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEtF;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAE3G;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC7F;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;CAM7B,CAAC;AAEX;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,wBAAwB;IACtE;;;OAGG;IACH,WAAW,IAAI,OAAO;IAIhB,aAAa,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAmB1F,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAuBvF,eAAe,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAuBhG,eAAe,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAuBhG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuBrF,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC;IA6BhH;;;OAGG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAiBlG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,4BAA4B,GAAG,2BAA2B,GAAG,8BAA8B,GACpG,OAAO,CAET;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,yBAAgC,CAAC"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ /**
3
+ * Content Standards Adapter
4
+ *
5
+ * Server-side adapter for implementing content standards evaluation logic.
6
+ * Publishers use this to plug in their brand safety/suitability evaluation systems.
7
+ *
8
+ * This is a stub implementation that returns not-supported responses.
9
+ * Publishers should extend or replace this with their actual evaluation logic.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.defaultContentStandardsAdapter = exports.ContentStandardsAdapter = exports.ContentStandardsErrorCodes = void 0;
13
+ exports.isContentStandardsError = isContentStandardsError;
14
+ /**
15
+ * Error codes for content standards operations
16
+ */
17
+ exports.ContentStandardsErrorCodes = {
18
+ NOT_SUPPORTED: 'content_standards_not_supported',
19
+ STANDARDS_NOT_FOUND: 'standards_not_found',
20
+ INVALID_STANDARDS: 'invalid_standards',
21
+ EVALUATION_FAILED: 'evaluation_failed',
22
+ QUOTA_EXCEEDED: 'quota_exceeded',
23
+ };
24
+ /**
25
+ * Stub implementation of ContentStandardsAdapter.
26
+ * Returns not-supported errors for all operations.
27
+ *
28
+ * Publishers should extend this class or provide their own implementation
29
+ * that integrates with their brand safety systems.
30
+ */
31
+ class ContentStandardsAdapter {
32
+ /**
33
+ * Check if content standards are supported.
34
+ * Override this to return true when implementing real logic.
35
+ */
36
+ isSupported() {
37
+ return false;
38
+ }
39
+ async listStandards(request) {
40
+ if (!this.isSupported()) {
41
+ return {
42
+ errors: [
43
+ {
44
+ code: exports.ContentStandardsErrorCodes.NOT_SUPPORTED,
45
+ message: 'Content standards are not supported by this server',
46
+ },
47
+ ],
48
+ };
49
+ }
50
+ // Override in subclass to return actual standards
51
+ return {
52
+ standards: [],
53
+ context: request.context,
54
+ };
55
+ }
56
+ async getStandards(request) {
57
+ if (!this.isSupported()) {
58
+ return {
59
+ errors: [
60
+ {
61
+ code: exports.ContentStandardsErrorCodes.NOT_SUPPORTED,
62
+ message: 'Content standards are not supported by this server',
63
+ },
64
+ ],
65
+ };
66
+ }
67
+ // Override in subclass to return actual standards
68
+ return {
69
+ errors: [
70
+ {
71
+ code: exports.ContentStandardsErrorCodes.STANDARDS_NOT_FOUND,
72
+ message: `Standards not found: ${request.standards_id}`,
73
+ },
74
+ ],
75
+ };
76
+ }
77
+ async createStandards(request) {
78
+ if (!this.isSupported()) {
79
+ return {
80
+ errors: [
81
+ {
82
+ code: exports.ContentStandardsErrorCodes.NOT_SUPPORTED,
83
+ message: 'Content standards are not supported by this server',
84
+ },
85
+ ],
86
+ };
87
+ }
88
+ // Override in subclass to implement creation logic
89
+ return {
90
+ errors: [
91
+ {
92
+ code: exports.ContentStandardsErrorCodes.NOT_SUPPORTED,
93
+ message: 'Creating content standards is not implemented',
94
+ },
95
+ ],
96
+ };
97
+ }
98
+ async updateStandards(request) {
99
+ if (!this.isSupported()) {
100
+ return {
101
+ errors: [
102
+ {
103
+ code: exports.ContentStandardsErrorCodes.NOT_SUPPORTED,
104
+ message: 'Content standards are not supported by this server',
105
+ },
106
+ ],
107
+ };
108
+ }
109
+ // Override in subclass to implement update logic
110
+ return {
111
+ errors: [
112
+ {
113
+ code: exports.ContentStandardsErrorCodes.NOT_SUPPORTED,
114
+ message: 'Updating content standards is not implemented',
115
+ },
116
+ ],
117
+ };
118
+ }
119
+ async calibrateContent(request) {
120
+ if (!this.isSupported()) {
121
+ return {
122
+ errors: [
123
+ {
124
+ code: exports.ContentStandardsErrorCodes.NOT_SUPPORTED,
125
+ message: 'Content standards calibration is not supported by this server',
126
+ },
127
+ ],
128
+ };
129
+ }
130
+ // Override in subclass to implement calibration logic
131
+ return {
132
+ errors: [
133
+ {
134
+ code: exports.ContentStandardsErrorCodes.EVALUATION_FAILED,
135
+ message: 'Content calibration is not implemented',
136
+ },
137
+ ],
138
+ };
139
+ }
140
+ async validateContentDelivery(request) {
141
+ if (!this.isSupported()) {
142
+ return {
143
+ errors: [
144
+ {
145
+ code: exports.ContentStandardsErrorCodes.NOT_SUPPORTED,
146
+ message: 'Content delivery validation is not supported by this server',
147
+ },
148
+ ],
149
+ context: request.context,
150
+ };
151
+ }
152
+ // Override in subclass to implement validation logic
153
+ // Stub returns all records as passed (no filtering)
154
+ return {
155
+ summary: {
156
+ total_records: request.records.length,
157
+ passed_records: request.records.length,
158
+ failed_records: 0,
159
+ },
160
+ results: request.records.map(record => ({
161
+ record_id: record.record_id,
162
+ verdict: 'pass',
163
+ })),
164
+ context: request.context,
165
+ };
166
+ }
167
+ /**
168
+ * Evaluate a single artifact against content standards.
169
+ * Used by get_products and create_media_buy to filter content.
170
+ */
171
+ async evaluateArtifact(standardsId, artifact) {
172
+ if (!this.isSupported()) {
173
+ // When not supported, all content passes (no filtering)
174
+ return {
175
+ verdict: 'pass',
176
+ confidence: 1.0,
177
+ explanation: 'Content standards evaluation not enabled',
178
+ };
179
+ }
180
+ // Override in subclass to implement actual evaluation
181
+ return {
182
+ verdict: 'pass',
183
+ confidence: 1.0,
184
+ explanation: 'Default pass-through (no evaluation implemented)',
185
+ };
186
+ }
187
+ }
188
+ exports.ContentStandardsAdapter = ContentStandardsAdapter;
189
+ /**
190
+ * Helper to check if a response is an error response
191
+ */
192
+ function isContentStandardsError(response) {
193
+ return 'errors' in response && Array.isArray(response.errors) && response.errors.length > 0;
194
+ }
195
+ /**
196
+ * Default singleton instance for servers that don't need content standards
197
+ */
198
+ exports.defaultContentStandardsAdapter = new ContentStandardsAdapter();
199
+ //# sourceMappingURL=content-standards-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-standards-adapter.js","sourceRoot":"","sources":["../../../src/lib/adapters/content-standards-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Server-Side Adapters
3
+ *
4
+ * These adapters allow publishers/brands to plug in their business logic
5
+ * when implementing AdCP servers. Each adapter provides a stub implementation
6
+ * that can be extended or replaced.
7
+ *
8
+ * Usage:
9
+ * - ContentStandardsAdapter: Implement brand safety/suitability evaluation
10
+ * - PropertyListAdapter: Manage buyer-defined property lists
11
+ * - ProposalManager: Generate and refine media plan proposals
12
+ * - SISessionManager: Handle Sponsored Intelligence conversational sessions
13
+ */
14
+ export { ContentStandardsAdapter, type IContentStandardsAdapter, type ContentEvaluationResult, ContentStandardsErrorCodes, isContentStandardsError, defaultContentStandardsAdapter, } from './content-standards-adapter';
15
+ export { PropertyListAdapter, type IPropertyListAdapter, type ResolvedProperty, PropertyListErrorCodes, isPropertyListError, defaultPropertyListAdapter, } from './property-list-adapter';
16
+ export { ProposalManager, AIProposalManager, type IProposalManager, type ProposalContext, ProposalErrorCodes, defaultProposalManager, } from './proposal-manager';
17
+ export { SISessionManager, AISISessionManager, type ISISessionManager, type SISession, SIErrorCodes, defaultSISessionManager, } from './si-session-manager';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * Server-Side Adapters
4
+ *
5
+ * These adapters allow publishers/brands to plug in their business logic
6
+ * when implementing AdCP servers. Each adapter provides a stub implementation
7
+ * that can be extended or replaced.
8
+ *
9
+ * Usage:
10
+ * - ContentStandardsAdapter: Implement brand safety/suitability evaluation
11
+ * - PropertyListAdapter: Manage buyer-defined property lists
12
+ * - ProposalManager: Generate and refine media plan proposals
13
+ * - SISessionManager: Handle Sponsored Intelligence conversational sessions
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.defaultSISessionManager = exports.SIErrorCodes = exports.AISISessionManager = exports.SISessionManager = exports.defaultProposalManager = exports.ProposalErrorCodes = exports.AIProposalManager = exports.ProposalManager = exports.defaultPropertyListAdapter = exports.isPropertyListError = exports.PropertyListErrorCodes = exports.PropertyListAdapter = exports.defaultContentStandardsAdapter = exports.isContentStandardsError = exports.ContentStandardsErrorCodes = exports.ContentStandardsAdapter = void 0;
17
+ // Content Standards
18
+ var content_standards_adapter_1 = require("./content-standards-adapter");
19
+ Object.defineProperty(exports, "ContentStandardsAdapter", { enumerable: true, get: function () { return content_standards_adapter_1.ContentStandardsAdapter; } });
20
+ Object.defineProperty(exports, "ContentStandardsErrorCodes", { enumerable: true, get: function () { return content_standards_adapter_1.ContentStandardsErrorCodes; } });
21
+ Object.defineProperty(exports, "isContentStandardsError", { enumerable: true, get: function () { return content_standards_adapter_1.isContentStandardsError; } });
22
+ Object.defineProperty(exports, "defaultContentStandardsAdapter", { enumerable: true, get: function () { return content_standards_adapter_1.defaultContentStandardsAdapter; } });
23
+ // Property Lists
24
+ var property_list_adapter_1 = require("./property-list-adapter");
25
+ Object.defineProperty(exports, "PropertyListAdapter", { enumerable: true, get: function () { return property_list_adapter_1.PropertyListAdapter; } });
26
+ Object.defineProperty(exports, "PropertyListErrorCodes", { enumerable: true, get: function () { return property_list_adapter_1.PropertyListErrorCodes; } });
27
+ Object.defineProperty(exports, "isPropertyListError", { enumerable: true, get: function () { return property_list_adapter_1.isPropertyListError; } });
28
+ Object.defineProperty(exports, "defaultPropertyListAdapter", { enumerable: true, get: function () { return property_list_adapter_1.defaultPropertyListAdapter; } });
29
+ // Proposal Management
30
+ var proposal_manager_1 = require("./proposal-manager");
31
+ Object.defineProperty(exports, "ProposalManager", { enumerable: true, get: function () { return proposal_manager_1.ProposalManager; } });
32
+ Object.defineProperty(exports, "AIProposalManager", { enumerable: true, get: function () { return proposal_manager_1.AIProposalManager; } });
33
+ Object.defineProperty(exports, "ProposalErrorCodes", { enumerable: true, get: function () { return proposal_manager_1.ProposalErrorCodes; } });
34
+ Object.defineProperty(exports, "defaultProposalManager", { enumerable: true, get: function () { return proposal_manager_1.defaultProposalManager; } });
35
+ // Sponsored Intelligence Sessions
36
+ var si_session_manager_1 = require("./si-session-manager");
37
+ Object.defineProperty(exports, "SISessionManager", { enumerable: true, get: function () { return si_session_manager_1.SISessionManager; } });
38
+ Object.defineProperty(exports, "AISISessionManager", { enumerable: true, get: function () { return si_session_manager_1.AISISessionManager; } });
39
+ Object.defineProperty(exports, "SIErrorCodes", { enumerable: true, get: function () { return si_session_manager_1.SIErrorCodes; } });
40
+ Object.defineProperty(exports, "defaultSISessionManager", { enumerable: true, get: function () { return si_session_manager_1.defaultSISessionManager; } });
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,oBAAoB;AACpB,yEAOqC;AANnC,oIAAA,uBAAuB,OAAA;AAGvB,uIAAA,0BAA0B,OAAA;AAC1B,oIAAA,uBAAuB,OAAA;AACvB,2IAAA,8BAA8B,OAAA;AAGhC,iBAAiB;AACjB,iEAOiC;AAN/B,4HAAA,mBAAmB,OAAA;AAGnB,+HAAA,sBAAsB,OAAA;AACtB,4HAAA,mBAAmB,OAAA;AACnB,mIAAA,0BAA0B,OAAA;AAG5B,sBAAsB;AACtB,uDAO4B;AAN1B,mHAAA,eAAe,OAAA;AACf,qHAAA,iBAAiB,OAAA;AAGjB,sHAAA,kBAAkB,OAAA;AAClB,0HAAA,sBAAsB,OAAA;AAGxB,kCAAkC;AAClC,2DAO8B;AAN5B,sHAAA,gBAAgB,OAAA;AAChB,wHAAA,kBAAkB,OAAA;AAGlB,kHAAA,YAAY,OAAA;AACZ,6HAAA,uBAAuB,OAAA"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Property List Adapter
3
+ *
4
+ * Server-side adapter for implementing property list management logic.
5
+ * Publishers use this to manage buyer-defined property lists for filtering
6
+ * available inventory.
7
+ *
8
+ * This is a stub implementation that stores lists in memory.
9
+ * Publishers should extend or replace this with persistent storage.
10
+ */
11
+ import type { CreatePropertyListRequest, CreatePropertyListResponse, UpdatePropertyListRequest, UpdatePropertyListResponse, GetPropertyListRequest, GetPropertyListResponse, ListPropertyListsRequest, ListPropertyListsResponse, DeletePropertyListRequest, DeletePropertyListResponse } from '../types/tools.generated';
12
+ /**
13
+ * Resolved property identifier
14
+ */
15
+ export interface ResolvedProperty {
16
+ identifier_type: string;
17
+ identifier_value: string;
18
+ publisher_domain?: string;
19
+ display_name?: string;
20
+ status?: 'active' | 'inactive' | 'pending';
21
+ }
22
+ /**
23
+ * Error thrown when property list operations fail
24
+ */
25
+ export declare class PropertyListError extends Error {
26
+ code: string;
27
+ constructor(code: string, message: string);
28
+ }
29
+ /**
30
+ * Abstract interface for property list adapters.
31
+ * Publishers implement this to provide their storage and resolution logic.
32
+ */
33
+ export interface IPropertyListAdapter {
34
+ /**
35
+ * Check if property list management is supported by this server
36
+ */
37
+ isSupported(): boolean;
38
+ /**
39
+ * Create a new property list
40
+ */
41
+ createList(request: CreatePropertyListRequest): Promise<CreatePropertyListResponse>;
42
+ /**
43
+ * Update an existing property list
44
+ */
45
+ updateList(request: UpdatePropertyListRequest): Promise<UpdatePropertyListResponse>;
46
+ /**
47
+ * Get a property list with optional resolution
48
+ */
49
+ getList(request: GetPropertyListRequest): Promise<GetPropertyListResponse>;
50
+ /**
51
+ * List all property lists for a principal
52
+ */
53
+ listLists(request: ListPropertyListsRequest): Promise<ListPropertyListsResponse>;
54
+ /**
55
+ * Delete a property list
56
+ */
57
+ deleteList(request: DeletePropertyListRequest): Promise<DeletePropertyListResponse>;
58
+ /**
59
+ * Check if a property identifier is in a property list.
60
+ * Used by get_products and create_media_buy for filtering.
61
+ */
62
+ isPropertyInList(listId: string, identifierType: string, identifierValue: string): Promise<boolean>;
63
+ /**
64
+ * Resolve a property list to its constituent identifiers.
65
+ * Applies filters and returns matching properties.
66
+ */
67
+ resolveList(listId: string, maxResults?: number, cursor?: string): Promise<ResolvedProperty[]>;
68
+ }
69
+ /**
70
+ * Error codes for property list operations
71
+ */
72
+ export declare const PropertyListErrorCodes: {
73
+ readonly NOT_SUPPORTED: "property_lists_not_supported";
74
+ readonly LIST_NOT_FOUND: "list_not_found";
75
+ readonly INVALID_LIST: "invalid_list";
76
+ readonly PERMISSION_DENIED: "permission_denied";
77
+ readonly QUOTA_EXCEEDED: "quota_exceeded";
78
+ };
79
+ /**
80
+ * Stub implementation of PropertyListAdapter.
81
+ * Uses in-memory storage for development and testing.
82
+ *
83
+ * Publishers should extend this class or provide their own implementation
84
+ * that integrates with their property management systems.
85
+ */
86
+ export declare class PropertyListAdapter implements IPropertyListAdapter {
87
+ private lists;
88
+ private authTokens;
89
+ private nextId;
90
+ /**
91
+ * Check if property list management is supported.
92
+ * Override this to return true when implementing real logic.
93
+ */
94
+ isSupported(): boolean;
95
+ createList(request: CreatePropertyListRequest): Promise<CreatePropertyListResponse>;
96
+ updateList(request: UpdatePropertyListRequest): Promise<UpdatePropertyListResponse>;
97
+ getList(request: GetPropertyListRequest): Promise<GetPropertyListResponse>;
98
+ listLists(request: ListPropertyListsRequest): Promise<ListPropertyListsResponse>;
99
+ deleteList(request: DeletePropertyListRequest): Promise<DeletePropertyListResponse>;
100
+ /**
101
+ * Check if a property is in a list.
102
+ * Stub implementation returns false (property not found).
103
+ */
104
+ isPropertyInList(listId: string, identifierType: string, identifierValue: string): Promise<boolean>;
105
+ /**
106
+ * Resolve a property list to identifiers.
107
+ * Stub implementation returns empty array.
108
+ */
109
+ resolveList(listId: string, maxResults?: number, cursor?: string): Promise<ResolvedProperty[]>;
110
+ /**
111
+ * Generate a random token for auth
112
+ */
113
+ protected generateToken(): string;
114
+ }
115
+ /**
116
+ * Helper to check if an error is a PropertyListError
117
+ */
118
+ export declare function isPropertyListError(error: unknown): error is PropertyListError;
119
+ /**
120
+ * Default singleton instance for servers that don't need property list management
121
+ */
122
+ export declare const defaultPropertyListAdapter: PropertyListAdapter;
123
+ //# sourceMappingURL=property-list-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-list-adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/property-list-adapter.ts"],"names":[],"mappings":"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"}