@adcp/client 3.0.3 → 3.2.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/README.md +3 -0
- package/dist/lib/agents/index.generated.d.ts +27 -50
- package/dist/lib/agents/index.generated.d.ts.map +1 -1
- package/dist/lib/agents/index.generated.js +12 -24
- package/dist/lib/agents/index.generated.js.map +1 -1
- package/dist/lib/auth/index.d.ts +8 -3
- package/dist/lib/auth/index.d.ts.map +1 -1
- package/dist/lib/auth/index.js +32 -6
- package/dist/lib/auth/index.js.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.d.ts +150 -41
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.js +150 -41
- package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/ConfigurationManager.d.ts.map +1 -1
- package/dist/lib/core/ConfigurationManager.js +14 -1
- package/dist/lib/core/ConfigurationManager.js.map +1 -1
- package/dist/lib/core/CreativeAgentClient.d.ts.map +1 -1
- package/dist/lib/core/CreativeAgentClient.js +6 -1
- package/dist/lib/core/CreativeAgentClient.js.map +1 -1
- package/dist/lib/core/ResponseValidator.d.ts.map +1 -1
- package/dist/lib/core/ResponseValidator.js +5 -6
- package/dist/lib/core/ResponseValidator.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +6 -0
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +15 -7
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +1 -1
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +60 -61
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/index.d.ts +30 -15
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +86 -26
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/protocols/a2a.d.ts +2 -1
- package/dist/lib/protocols/a2a.d.ts.map +1 -1
- package/dist/lib/protocols/a2a.js +12 -4
- package/dist/lib/protocols/a2a.js.map +1 -1
- package/dist/lib/protocols/index.d.ts +12 -1
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +29 -14
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/types/adcp.d.ts +3 -58
- package/dist/lib/types/adcp.d.ts.map +1 -1
- package/dist/lib/types/core.generated.d.ts +268 -211
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +2 -2
- package/dist/lib/types/schemas.generated.d.ts +3191 -2687
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +562 -480
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +790 -654
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/types/tools.generated.js +1 -1
- package/dist/lib/types/tools.generated.js.map +1 -1
- package/dist/lib/utils/index.d.ts +3 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +10 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/preview-utils.d.ts.map +1 -1
- package/dist/lib/utils/preview-utils.js +2 -0
- package/dist/lib/utils/preview-utils.js.map +1 -1
- package/dist/lib/utils/response-unwrapper.d.ts +36 -0
- package/dist/lib/utils/response-unwrapper.d.ts.map +1 -0
- package/dist/lib/utils/response-unwrapper.js +331 -0
- package/dist/lib/utils/response-unwrapper.js.map +1 -0
- package/dist/lib/version.d.ts +13 -5
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +19 -5
- package/dist/lib/version.js.map +1 -1
- package/package.json +6 -7
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Response Unwrapper
|
|
4
|
+
*
|
|
5
|
+
* Extracts raw AdCP responses from protocol wrappers (MCP/A2A).
|
|
6
|
+
* Follows canonical A2A response format per AdCP specification.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.unwrapProtocolResponse = unwrapProtocolResponse;
|
|
43
|
+
exports.isAdcpError = isAdcpError;
|
|
44
|
+
exports.isAdcpSuccess = isAdcpSuccess;
|
|
45
|
+
const zod_1 = require("zod");
|
|
46
|
+
/**
|
|
47
|
+
* Standard error codes for response unwrapping
|
|
48
|
+
*/
|
|
49
|
+
const ERROR_CODES = {
|
|
50
|
+
MCP_ERROR: 'mcp_error',
|
|
51
|
+
INVALID_RESPONSE: 'invalid_response',
|
|
52
|
+
UNKNOWN: 'unknown',
|
|
53
|
+
};
|
|
54
|
+
const schemas = __importStar(require("../types/schemas.generated"));
|
|
55
|
+
/**
|
|
56
|
+
* Map of AdCP tool names to their Zod response schemas
|
|
57
|
+
*
|
|
58
|
+
* TYPE SAFETY TRADE-OFF ANALYSIS:
|
|
59
|
+
*
|
|
60
|
+
* Current approach: All schemas cast to `z.ZodSchema<AdCPResponse>` (union type)
|
|
61
|
+
*
|
|
62
|
+
* Why we keep this approach:
|
|
63
|
+
* 1. Simplicity - Single map type is easy to maintain and extend
|
|
64
|
+
* 2. Runtime validation - Zod schemas provide full validation regardless of type
|
|
65
|
+
* 3. Return type accuracy - unwrapProtocolResponse returns `AdCPResponse` union anyway
|
|
66
|
+
* 4. Minimal type loss - The specific schema validates correctly at runtime
|
|
67
|
+
*
|
|
68
|
+
* Alternative considered (function overloads):
|
|
69
|
+
* ```typescript
|
|
70
|
+
* function unwrapProtocolResponse(response: any, toolName: 'get_products'): GetProductsResponse;
|
|
71
|
+
* function unwrapProtocolResponse(response: any, toolName: 'create_media_buy'): CreateMediaBuyResponse;
|
|
72
|
+
* // ... 13 overloads total
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* Why we don't use overloads:
|
|
76
|
+
* 1. High maintenance burden - 13+ overload signatures to maintain
|
|
77
|
+
* 2. Fragile - Easy to forget updating overloads when adding tools
|
|
78
|
+
* 3. Limited benefit - Caller still needs type guards to narrow union
|
|
79
|
+
* 4. Optional toolName - toolName parameter is optional, overloads don't help
|
|
80
|
+
*
|
|
81
|
+
* Alternative considered (mapped types):
|
|
82
|
+
* ```typescript
|
|
83
|
+
* type ToolSchemaMap = {
|
|
84
|
+
* [K in keyof typeof TOOL_RESPONSE_SCHEMAS]: z.ZodSchema<Extract<AdCPResponse, { ... }>>
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* Why we don't use mapped types:
|
|
89
|
+
* 1. Complexity - Requires discriminated union detection logic
|
|
90
|
+
* 2. Fragile - AdCP responses don't all have discriminator fields
|
|
91
|
+
* 3. Minimal benefit - Still returns union type, needs type guards at call site
|
|
92
|
+
*
|
|
93
|
+
* Conclusion: Current approach provides best balance of simplicity, maintainability,
|
|
94
|
+
* and runtime safety. TypeScript types are validated by Zod at runtime anyway.
|
|
95
|
+
*/
|
|
96
|
+
const TOOL_RESPONSE_SCHEMAS = {
|
|
97
|
+
get_products: schemas.GetProductsResponseSchema,
|
|
98
|
+
list_creative_formats: schemas.ListCreativeFormatsResponseSchema,
|
|
99
|
+
create_media_buy: schemas.CreateMediaBuyResponseSchema,
|
|
100
|
+
update_media_buy: schemas.UpdateMediaBuyResponseSchema,
|
|
101
|
+
sync_creatives: schemas.SyncCreativesResponseSchema, // Manually defined discriminated union
|
|
102
|
+
list_creatives: schemas.ListCreativesResponseSchema,
|
|
103
|
+
get_media_buy_delivery: schemas.GetMediaBuyDeliveryResponseSchema,
|
|
104
|
+
list_authorized_properties: schemas.ListAuthorizedPropertiesResponseSchema,
|
|
105
|
+
provide_performance_feedback: schemas.ProvidePerformanceFeedbackResponseSchema,
|
|
106
|
+
build_creative: schemas.BuildCreativeResponseSchema,
|
|
107
|
+
preview_creative: schemas.PreviewCreativeResponseSchema, // Manually defined discriminated union
|
|
108
|
+
get_signals: schemas.GetSignalsResponseSchema,
|
|
109
|
+
activate_signal: schemas.ActivateSignalResponseSchema,
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Extract raw AdCP response from protocol wrapper
|
|
113
|
+
*
|
|
114
|
+
* @param protocolResponse - Raw response from MCP or A2A protocol
|
|
115
|
+
* @param toolName - Optional AdCP tool name for validation
|
|
116
|
+
* @param protocol - Protocol type ('mcp' or 'a2a'), if known. If not provided, will auto-detect.
|
|
117
|
+
* @returns Raw AdCP response data matching schema exactly
|
|
118
|
+
* @throws {Error} If response doesn't match expected schema for the tool
|
|
119
|
+
*/
|
|
120
|
+
function unwrapProtocolResponse(protocolResponse, toolName, protocol) {
|
|
121
|
+
if (!protocolResponse) {
|
|
122
|
+
throw new Error('Protocol response is null or undefined');
|
|
123
|
+
}
|
|
124
|
+
// Extract response from protocol wrapper
|
|
125
|
+
let unwrapped;
|
|
126
|
+
if (protocol === 'mcp') {
|
|
127
|
+
unwrapped = unwrapMCPResponse(protocolResponse);
|
|
128
|
+
}
|
|
129
|
+
else if (protocol === 'a2a') {
|
|
130
|
+
unwrapped = unwrapA2AResponse(protocolResponse);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Auto-detect protocol if not specified
|
|
134
|
+
if (isMCPResponse(protocolResponse)) {
|
|
135
|
+
unwrapped = unwrapMCPResponse(protocolResponse);
|
|
136
|
+
}
|
|
137
|
+
else if (isA2AResponse(protocolResponse)) {
|
|
138
|
+
unwrapped = unwrapA2AResponse(protocolResponse);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
throw new Error('Unable to extract AdCP response from protocol wrapper');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Validate response against schema if tool name provided
|
|
145
|
+
if (toolName) {
|
|
146
|
+
const schema = TOOL_RESPONSE_SCHEMAS[toolName];
|
|
147
|
+
if (schema) {
|
|
148
|
+
// Create wrapper schema that preserves protocol metadata
|
|
149
|
+
// We use z.intersection to combine the validated response with optional _message field
|
|
150
|
+
const wrapperSchema = zod_1.z.intersection(schema, zod_1.z.object({ _message: zod_1.z.string().optional() }));
|
|
151
|
+
const result = wrapperSchema.safeParse(unwrapped);
|
|
152
|
+
if (!result.success) {
|
|
153
|
+
throw new Error(`Response validation failed for ${toolName}: ${result.error.message}`);
|
|
154
|
+
}
|
|
155
|
+
return result.data;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Return unwrapped response (no validation)
|
|
159
|
+
return unwrapped;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Check if response is MCP format
|
|
163
|
+
*/
|
|
164
|
+
function isMCPResponse(response) {
|
|
165
|
+
return 'structuredContent' in response || 'isError' in response || 'content' in response;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Check if response is A2A format
|
|
169
|
+
*/
|
|
170
|
+
function isA2AResponse(response) {
|
|
171
|
+
return 'result' in response || 'error' in response;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Unwrap MCP response - all MCP logic in one place
|
|
175
|
+
*/
|
|
176
|
+
function unwrapMCPResponse(response) {
|
|
177
|
+
// MCP error response
|
|
178
|
+
if (response.isError === true) {
|
|
179
|
+
const errorContent = Array.isArray(response.content)
|
|
180
|
+
? response.content.find((c) => c.type === 'text')?.text
|
|
181
|
+
: response.content?.text || 'Unknown error';
|
|
182
|
+
return {
|
|
183
|
+
errors: [
|
|
184
|
+
{
|
|
185
|
+
code: ERROR_CODES.MCP_ERROR,
|
|
186
|
+
message: errorContent || 'MCP tool call failed',
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
// MCP success response with structuredContent
|
|
192
|
+
if (response.structuredContent !== undefined && response.structuredContent !== null) {
|
|
193
|
+
const data = response.structuredContent;
|
|
194
|
+
// Extract text messages from content field (parallel to A2A TextParts)
|
|
195
|
+
const textMessages = [];
|
|
196
|
+
if (response.content && Array.isArray(response.content)) {
|
|
197
|
+
for (const item of response.content) {
|
|
198
|
+
if (item.type === 'text' && item.text) {
|
|
199
|
+
textMessages.push(item.text);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Include text messages if present (same pattern as A2A)
|
|
204
|
+
if (textMessages.length > 0) {
|
|
205
|
+
return {
|
|
206
|
+
...data,
|
|
207
|
+
_message: textMessages.join('\n'),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
return data;
|
|
211
|
+
}
|
|
212
|
+
// MCP text content fallback (try parsing as JSON)
|
|
213
|
+
if (response.content && Array.isArray(response.content)) {
|
|
214
|
+
const textContent = response.content.find((c) => c.type === 'text');
|
|
215
|
+
if (textContent?.text) {
|
|
216
|
+
try {
|
|
217
|
+
return JSON.parse(textContent.text);
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
// Include snippet of text for debugging (max 100 chars)
|
|
221
|
+
const snippet = textContent.text.length > 100 ? textContent.text.substring(0, 100) + '...' : textContent.text;
|
|
222
|
+
return {
|
|
223
|
+
errors: [
|
|
224
|
+
{
|
|
225
|
+
code: ERROR_CODES.INVALID_RESPONSE,
|
|
226
|
+
message: `Response does not contain structured AdCP data. Text content: "${snippet}"`,
|
|
227
|
+
},
|
|
228
|
+
],
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
throw new Error('Invalid MCP response format');
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Unwrap A2A response
|
|
237
|
+
*
|
|
238
|
+
* NOTE: This function should only be called when status is "completed".
|
|
239
|
+
* Intermediate statuses ("working", "submitted", "input-required") are handled
|
|
240
|
+
* at the response level (not in artifacts) and should not reach this function.
|
|
241
|
+
*
|
|
242
|
+
* A2A response flow:
|
|
243
|
+
* - Intermediate: { status: "working", message: "..." } - NO artifacts yet
|
|
244
|
+
* - Completed: { status: "completed", result: { artifacts: [...] } } - Parse artifacts here
|
|
245
|
+
*/
|
|
246
|
+
function unwrapA2AResponse(response) {
|
|
247
|
+
// Validate that we're not processing intermediate statuses
|
|
248
|
+
// Task status check: only completed tasks should reach artifact extraction
|
|
249
|
+
if (response.result?.status?.state && response.result.status.state !== 'completed') {
|
|
250
|
+
throw new Error(`Cannot unwrap A2A response with intermediate status: ${response.result.status.state}. ` +
|
|
251
|
+
'Only completed responses should be unwrapped.');
|
|
252
|
+
}
|
|
253
|
+
// A2A error response (JSON-RPC error)
|
|
254
|
+
if (response.error) {
|
|
255
|
+
return {
|
|
256
|
+
errors: [
|
|
257
|
+
{
|
|
258
|
+
code: response.error.code?.toString() || ERROR_CODES.UNKNOWN,
|
|
259
|
+
message: response.error.message || 'A2A JSON-RPC error occurred',
|
|
260
|
+
...(response.error.data && { data: response.error.data }),
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
// A2A completed response - simple requirements per AdCP spec:
|
|
266
|
+
// - MUST have result.artifacts array with at least one completed artifact
|
|
267
|
+
// - Completed artifact MUST have at least one DataPart (kind: 'data') with the AdCP response
|
|
268
|
+
// - MAY have TextParts (kind: 'text') with optional messages
|
|
269
|
+
const artifacts = response.result?.artifacts;
|
|
270
|
+
if (!Array.isArray(artifacts) || artifacts.length === 0) {
|
|
271
|
+
throw new Error('A2A completed response must have at least one artifact');
|
|
272
|
+
}
|
|
273
|
+
// Take last artifact (conversational protocols append artifacts over time)
|
|
274
|
+
// Note: A2A artifacts don't have a status field - only Tasks have status.
|
|
275
|
+
// If the Task status is "completed", all artifacts in result.artifacts are completed.
|
|
276
|
+
const artifact = artifacts[artifacts.length - 1];
|
|
277
|
+
if (!artifact) {
|
|
278
|
+
throw new Error('A2A completed response must have at least one artifact');
|
|
279
|
+
}
|
|
280
|
+
if (!artifact.parts || !Array.isArray(artifact.parts)) {
|
|
281
|
+
throw new Error('A2A artifact missing parts array');
|
|
282
|
+
}
|
|
283
|
+
// Extract DataPart (required) and TextParts (optional)
|
|
284
|
+
// Get last data part to be consistent with taking last artifact in conversational protocol
|
|
285
|
+
const dataParts = artifact.parts.filter((p) => p.kind === 'data');
|
|
286
|
+
const dataPart = dataParts[dataParts.length - 1];
|
|
287
|
+
if (!dataPart?.data) {
|
|
288
|
+
throw new Error('A2A completed response must have a DataPart with AdCP data');
|
|
289
|
+
}
|
|
290
|
+
const textParts = artifact.parts.filter((p) => p.kind === 'text' && p.text).map((p) => p.text);
|
|
291
|
+
// Unwrap nested response field if present (some agents wrap AdCP responses)
|
|
292
|
+
let data = dataPart.data;
|
|
293
|
+
if (data?.response && typeof data.response === 'object' && !Array.isArray(data.response)) {
|
|
294
|
+
data = data.response;
|
|
295
|
+
}
|
|
296
|
+
// Return data with optional message
|
|
297
|
+
if (textParts.length > 0) {
|
|
298
|
+
return {
|
|
299
|
+
...data,
|
|
300
|
+
_message: textParts.join('\n'),
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
return data;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Check if a response is an AdCP error response
|
|
307
|
+
*/
|
|
308
|
+
function isAdcpError(response) {
|
|
309
|
+
return Array.isArray(response?.errors) && response.errors.length > 0;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Check if a response is an AdCP success response for a specific task
|
|
313
|
+
*
|
|
314
|
+
* Uses Zod schemas to validate the response structure matches the expected
|
|
315
|
+
* success response format for the given task.
|
|
316
|
+
*/
|
|
317
|
+
function isAdcpSuccess(response, taskName) {
|
|
318
|
+
// First check if it's an error response
|
|
319
|
+
if (isAdcpError(response)) {
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
// Try to validate with Zod schema if available
|
|
323
|
+
const schema = TOOL_RESPONSE_SCHEMAS[taskName];
|
|
324
|
+
if (schema) {
|
|
325
|
+
const result = schema.safeParse(response);
|
|
326
|
+
return result.success;
|
|
327
|
+
}
|
|
328
|
+
// Unknown task - can't validate, assume success if no errors
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=response-unwrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-unwrapper.js","sourceRoot":"","sources":["../../../src/lib/utils/response-unwrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP client library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "
|
|
4
|
+
export declare const LIBRARY_VERSION = "3.1.0";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is compatible with
|
|
7
7
|
*/
|
|
8
|
-
export declare const ADCP_VERSION = "
|
|
8
|
+
export declare const ADCP_VERSION = "v2.5";
|
|
9
9
|
/**
|
|
10
10
|
* Full version information
|
|
11
11
|
*/
|
|
12
12
|
export declare const VERSION_INFO: {
|
|
13
|
-
readonly library: "
|
|
14
|
-
readonly adcp: "
|
|
13
|
+
readonly library: "3.1.0";
|
|
14
|
+
readonly adcp: "v2.5";
|
|
15
15
|
readonly compatible: true;
|
|
16
|
-
readonly generatedAt: "2025-11-
|
|
16
|
+
readonly generatedAt: "2025-11-23T13:15:41.727Z";
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Get the AdCP specification version this library is built for
|
|
20
|
+
*/
|
|
21
|
+
export declare function getAdcpVersion(): string;
|
|
22
|
+
/**
|
|
23
|
+
* Get the library version
|
|
24
|
+
*/
|
|
25
|
+
export declare function getLibraryVersion(): string;
|
|
18
26
|
/**
|
|
19
27
|
* Check if this library version is compatible with a given AdCP version
|
|
20
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,YAAY,SAAS,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAI7D"}
|
package/dist/lib/version.js
CHANGED
|
@@ -3,24 +3,38 @@
|
|
|
3
3
|
// This file is auto-generated by sync-version.ts
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.VERSION_INFO = exports.ADCP_VERSION = exports.LIBRARY_VERSION = void 0;
|
|
6
|
+
exports.getAdcpVersion = getAdcpVersion;
|
|
7
|
+
exports.getLibraryVersion = getLibraryVersion;
|
|
6
8
|
exports.isCompatibleWith = isCompatibleWith;
|
|
7
9
|
/**
|
|
8
10
|
* AdCP client library version
|
|
9
11
|
*/
|
|
10
|
-
exports.LIBRARY_VERSION = '
|
|
12
|
+
exports.LIBRARY_VERSION = '3.1.0';
|
|
11
13
|
/**
|
|
12
14
|
* AdCP specification version this library is compatible with
|
|
13
15
|
*/
|
|
14
|
-
exports.ADCP_VERSION = '
|
|
16
|
+
exports.ADCP_VERSION = 'v2.5';
|
|
15
17
|
/**
|
|
16
18
|
* Full version information
|
|
17
19
|
*/
|
|
18
20
|
exports.VERSION_INFO = {
|
|
19
|
-
library: '
|
|
20
|
-
adcp: '
|
|
21
|
+
library: '3.1.0',
|
|
22
|
+
adcp: 'v2.5',
|
|
21
23
|
compatible: true,
|
|
22
|
-
generatedAt: '2025-11-
|
|
24
|
+
generatedAt: '2025-11-23T13:15:41.727Z',
|
|
23
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Get the AdCP specification version this library is built for
|
|
28
|
+
*/
|
|
29
|
+
function getAdcpVersion() {
|
|
30
|
+
return exports.ADCP_VERSION;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get the library version
|
|
34
|
+
*/
|
|
35
|
+
function getLibraryVersion() {
|
|
36
|
+
return exports.LIBRARY_VERSION;
|
|
37
|
+
}
|
|
24
38
|
/**
|
|
25
39
|
* Check if this library version is compatible with a given AdCP version
|
|
26
40
|
*/
|
package/dist/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,iDAAiD;;;AAyBjD,4CAIC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,iDAAiD;;;AAyBjD,wCAEC;AAKD,8CAEC;AAKD,4CAIC;AAzCD;;GAEG;AACU,QAAA,eAAe,GAAG,OAAO,CAAC;AAEvC;;GAEG;AACU,QAAA,YAAY,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,0BAA0B;CAC/B,CAAC;AAEX;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,oBAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,uBAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,WAAmB;IAClD,yCAAyC;IACzC,iEAAiE;IACjE,OAAO,WAAW,KAAK,oBAAY,CAAC;AACtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adcp/client",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "AdCP client library with protocol support for MCP and A2A, includes testing framework",
|
|
5
5
|
"main": "dist/lib/index.js",
|
|
6
6
|
"types": "dist/lib/index.d.ts",
|
|
@@ -66,10 +66,8 @@
|
|
|
66
66
|
"prepublishOnly": "npm run clean && (test -f src/lib/types/tools.generated.ts || npm run sync-schemas) && (test -f src/lib/types/tools.generated.ts || npm run generate-types) && npm run build:lib && node --test test/lib/adcp-client.test.js test/lib/validation.test.js test/lib/zod-schemas.test.js",
|
|
67
67
|
"docs": "typedoc",
|
|
68
68
|
"docs:watch": "typedoc --watch",
|
|
69
|
-
"docs:serve": "
|
|
70
|
-
"docs:
|
|
71
|
-
"docs:build": "npm run docs && cd docs && make build",
|
|
72
|
-
"docs:install": "cd docs && make install",
|
|
69
|
+
"docs:serve": "npx http-server docs -p 4000 -o",
|
|
70
|
+
"docs:open": "open docs/api/index.html || xdg-open docs/api/index.html || start docs/api/index.html",
|
|
73
71
|
"ci:validate": "node scripts/ci-validate.js",
|
|
74
72
|
"ci:quick": "npm run format:check && npm run typecheck && npm run build:lib && npm test",
|
|
75
73
|
"ci:schema-check": "npm run sync-schemas && npm run generate-types && git diff --exit-code src/lib/types/ src/lib/agents/ || (echo '⚠️ Generated files are out of sync. Run: npm run sync-schemas && npm run generate-types' && exit 1)",
|
|
@@ -149,7 +147,8 @@
|
|
|
149
147
|
"node": ">=18.0.0"
|
|
150
148
|
},
|
|
151
149
|
"overrides": {
|
|
152
|
-
"@types/glob": "^8.1.0"
|
|
150
|
+
"@types/glob": "^8.1.0",
|
|
151
|
+
"js-yaml": "^4.1.1"
|
|
153
152
|
},
|
|
154
|
-
"adcp_version": "
|
|
153
|
+
"adcp_version": "v2.5"
|
|
155
154
|
}
|