@adcp/client 0.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/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/lib/agents/index.generated.d.ts +147 -0
- package/dist/lib/agents/index.generated.d.ts.map +1 -0
- package/dist/lib/agents/index.generated.js +218 -0
- package/dist/lib/agents/index.generated.js.map +1 -0
- package/dist/lib/auth/index.d.ts +22 -0
- package/dist/lib/auth/index.d.ts.map +1 -0
- package/dist/lib/auth/index.js +73 -0
- package/dist/lib/auth/index.js.map +1 -0
- package/dist/lib/core/ADCPClient.d.ts +233 -0
- package/dist/lib/core/ADCPClient.d.ts.map +1 -0
- package/dist/lib/core/ADCPClient.js +287 -0
- package/dist/lib/core/ADCPClient.js.map +1 -0
- package/dist/lib/core/ADCPMultiAgentClient.d.ts +308 -0
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -0
- package/dist/lib/core/ADCPMultiAgentClient.js +468 -0
- package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -0
- package/dist/lib/core/AgentClient.d.ts +124 -0
- package/dist/lib/core/AgentClient.d.ts.map +1 -0
- package/dist/lib/core/AgentClient.js +242 -0
- package/dist/lib/core/AgentClient.js.map +1 -0
- package/dist/lib/core/ConfigurationManager.d.ts +79 -0
- package/dist/lib/core/ConfigurationManager.d.ts.map +1 -0
- package/dist/lib/core/ConfigurationManager.js +254 -0
- package/dist/lib/core/ConfigurationManager.js.map +1 -0
- package/dist/lib/core/ConversationTypes.d.ts +242 -0
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -0
- package/dist/lib/core/ConversationTypes.js +5 -0
- package/dist/lib/core/ConversationTypes.js.map +1 -0
- package/dist/lib/core/ProtocolResponseParser.d.ts +45 -0
- package/dist/lib/core/ProtocolResponseParser.d.ts.map +1 -0
- package/dist/lib/core/ProtocolResponseParser.js +82 -0
- package/dist/lib/core/ProtocolResponseParser.js.map +1 -0
- package/dist/lib/core/TaskExecutor.d.ts +108 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -0
- package/dist/lib/core/TaskExecutor.js +422 -0
- package/dist/lib/core/TaskExecutor.js.map +1 -0
- package/dist/lib/errors/index.d.ts +125 -0
- package/dist/lib/errors/index.d.ts.map +1 -0
- package/dist/lib/errors/index.js +211 -0
- package/dist/lib/errors/index.js.map +1 -0
- package/dist/lib/handlers/types.d.ts +119 -0
- package/dist/lib/handlers/types.d.ts.map +1 -0
- package/dist/lib/handlers/types.js +239 -0
- package/dist/lib/handlers/types.js.map +1 -0
- package/dist/lib/index.d.ts +51 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +122 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/protocols/a2a.d.ts +2 -0
- package/dist/lib/protocols/a2a.d.ts.map +1 -0
- package/dist/lib/protocols/a2a.js +70 -0
- package/dist/lib/protocols/a2a.js.map +1 -0
- package/dist/lib/protocols/index.d.ts +22 -0
- package/dist/lib/protocols/index.d.ts.map +1 -0
- package/dist/lib/protocols/index.js +47 -0
- package/dist/lib/protocols/index.js.map +1 -0
- package/dist/lib/protocols/mcp.d.ts +2 -0
- package/dist/lib/protocols/mcp.d.ts.map +1 -0
- package/dist/lib/protocols/mcp.js +127 -0
- package/dist/lib/protocols/mcp.js.map +1 -0
- package/dist/lib/storage/MemoryStorage.d.ts +93 -0
- package/dist/lib/storage/MemoryStorage.d.ts.map +1 -0
- package/dist/lib/storage/MemoryStorage.js +219 -0
- package/dist/lib/storage/MemoryStorage.js.map +1 -0
- package/dist/lib/storage/interfaces.d.ts +195 -0
- package/dist/lib/storage/interfaces.d.ts.map +1 -0
- package/dist/lib/storage/interfaces.js +5 -0
- package/dist/lib/storage/interfaces.js.map +1 -0
- package/dist/lib/types/adcp.d.ts +407 -0
- package/dist/lib/types/adcp.d.ts.map +1 -0
- package/dist/lib/types/adcp.js +5 -0
- package/dist/lib/types/adcp.js.map +1 -0
- package/dist/lib/types/core.generated.d.ts +469 -0
- package/dist/lib/types/core.generated.d.ts.map +1 -0
- package/dist/lib/types/core.generated.js +5 -0
- package/dist/lib/types/core.generated.js.map +1 -0
- package/dist/lib/types/index.d.ts +3 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/lib/types/index.js +19 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/types/tools.generated.d.ts +1674 -0
- package/dist/lib/types/tools.generated.d.ts.map +1 -0
- package/dist/lib/types/tools.generated.js +8 -0
- package/dist/lib/types/tools.generated.js.map +1 -0
- package/dist/lib/utils/index.d.ts +25 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +109 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/validation/index.d.ts +29 -0
- package/dist/lib/validation/index.d.ts.map +1 -0
- package/dist/lib/validation/index.js +186 -0
- package/dist/lib/validation/index.js.map +1 -0
- package/dist/lib/version.d.ts +22 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +32 -0
- package/dist/lib/version.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Multi-agent orchestrator providing simple, intuitive API
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ADCPMultiAgentClient = exports.AgentCollection = void 0;
|
|
5
|
+
exports.createADCPMultiAgentClient = createADCPMultiAgentClient;
|
|
6
|
+
const AgentClient_1 = require("./AgentClient");
|
|
7
|
+
const ConfigurationManager_1 = require("./ConfigurationManager");
|
|
8
|
+
/**
|
|
9
|
+
* Collection of agent clients for parallel operations
|
|
10
|
+
*/
|
|
11
|
+
class AgentCollection {
|
|
12
|
+
agents;
|
|
13
|
+
config;
|
|
14
|
+
clients = new Map();
|
|
15
|
+
constructor(agents, config = {}) {
|
|
16
|
+
this.agents = agents;
|
|
17
|
+
this.config = config;
|
|
18
|
+
for (const agent of agents) {
|
|
19
|
+
this.clients.set(agent.id, new AgentClient_1.AgentClient(agent, config));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// ====== PARALLEL TASK EXECUTION ======
|
|
23
|
+
/**
|
|
24
|
+
* Execute getProducts on all agents in parallel
|
|
25
|
+
*/
|
|
26
|
+
async getProducts(params, inputHandler, options) {
|
|
27
|
+
const promises = Array.from(this.clients.values()).map(client => client.getProducts(params, inputHandler, options));
|
|
28
|
+
return Promise.all(promises);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Execute listCreativeFormats on all agents in parallel
|
|
32
|
+
*/
|
|
33
|
+
async listCreativeFormats(params, inputHandler, options) {
|
|
34
|
+
const promises = Array.from(this.clients.values()).map(client => client.listCreativeFormats(params, inputHandler, options));
|
|
35
|
+
return Promise.all(promises);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Execute createMediaBuy on all agents in parallel
|
|
39
|
+
* Note: This might not make sense for all use cases, but provided for completeness
|
|
40
|
+
*/
|
|
41
|
+
async createMediaBuy(params, inputHandler, options) {
|
|
42
|
+
const promises = Array.from(this.clients.values()).map(client => client.createMediaBuy(params, inputHandler, options));
|
|
43
|
+
return Promise.all(promises);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Execute updateMediaBuy on all agents in parallel
|
|
47
|
+
*/
|
|
48
|
+
async updateMediaBuy(params, inputHandler, options) {
|
|
49
|
+
const promises = Array.from(this.clients.values()).map(client => client.updateMediaBuy(params, inputHandler, options));
|
|
50
|
+
return Promise.all(promises);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Execute syncCreatives on all agents in parallel
|
|
54
|
+
*/
|
|
55
|
+
async syncCreatives(params, inputHandler, options) {
|
|
56
|
+
const promises = Array.from(this.clients.values()).map(client => client.syncCreatives(params, inputHandler, options));
|
|
57
|
+
return Promise.all(promises);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Execute listCreatives on all agents in parallel
|
|
61
|
+
*/
|
|
62
|
+
async listCreatives(params, inputHandler, options) {
|
|
63
|
+
const promises = Array.from(this.clients.values()).map(client => client.listCreatives(params, inputHandler, options));
|
|
64
|
+
return Promise.all(promises);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Execute getMediaBuyDelivery on all agents in parallel
|
|
68
|
+
*/
|
|
69
|
+
async getMediaBuyDelivery(params, inputHandler, options) {
|
|
70
|
+
const promises = Array.from(this.clients.values()).map(client => client.getMediaBuyDelivery(params, inputHandler, options));
|
|
71
|
+
return Promise.all(promises);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Execute listAuthorizedProperties on all agents in parallel
|
|
75
|
+
*/
|
|
76
|
+
async listAuthorizedProperties(params, inputHandler, options) {
|
|
77
|
+
const promises = Array.from(this.clients.values()).map(client => client.listAuthorizedProperties(params, inputHandler, options));
|
|
78
|
+
return Promise.all(promises);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Execute providePerformanceFeedback on all agents in parallel
|
|
82
|
+
*/
|
|
83
|
+
async providePerformanceFeedback(params, inputHandler, options) {
|
|
84
|
+
const promises = Array.from(this.clients.values()).map(client => client.providePerformanceFeedback(params, inputHandler, options));
|
|
85
|
+
return Promise.all(promises);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Execute getSignals on all agents in parallel
|
|
89
|
+
*/
|
|
90
|
+
async getSignals(params, inputHandler, options) {
|
|
91
|
+
const promises = Array.from(this.clients.values()).map(client => client.getSignals(params, inputHandler, options));
|
|
92
|
+
return Promise.all(promises);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Execute activateSignal on all agents in parallel
|
|
96
|
+
*/
|
|
97
|
+
async activateSignal(params, inputHandler, options) {
|
|
98
|
+
const promises = Array.from(this.clients.values()).map(client => client.activateSignal(params, inputHandler, options));
|
|
99
|
+
return Promise.all(promises);
|
|
100
|
+
}
|
|
101
|
+
// ====== COLLECTION UTILITIES ======
|
|
102
|
+
/**
|
|
103
|
+
* Get individual agent client
|
|
104
|
+
*/
|
|
105
|
+
getAgent(agentId) {
|
|
106
|
+
const client = this.clients.get(agentId);
|
|
107
|
+
if (!client) {
|
|
108
|
+
throw new Error(`Agent '${agentId}' not found in collection. Available: ${Array.from(this.clients.keys()).join(', ')}`);
|
|
109
|
+
}
|
|
110
|
+
return client;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get all agent clients
|
|
114
|
+
*/
|
|
115
|
+
getAllAgents() {
|
|
116
|
+
return Array.from(this.clients.values());
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get agent IDs
|
|
120
|
+
*/
|
|
121
|
+
getAgentIds() {
|
|
122
|
+
return Array.from(this.clients.keys());
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get agent count
|
|
126
|
+
*/
|
|
127
|
+
get count() {
|
|
128
|
+
return this.clients.size;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Filter agents by a condition
|
|
132
|
+
*/
|
|
133
|
+
filter(predicate) {
|
|
134
|
+
return Array.from(this.clients.values()).filter(predicate);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Map over all agents
|
|
138
|
+
*/
|
|
139
|
+
map(mapper) {
|
|
140
|
+
return Array.from(this.clients.values()).map(mapper);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Execute a custom function on all agents in parallel
|
|
144
|
+
*/
|
|
145
|
+
async execute(executor) {
|
|
146
|
+
const promises = Array.from(this.clients.values()).map(executor);
|
|
147
|
+
return Promise.all(promises);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.AgentCollection = AgentCollection;
|
|
151
|
+
/**
|
|
152
|
+
* Main multi-agent ADCP client providing simple, intuitive API
|
|
153
|
+
*
|
|
154
|
+
* This is the primary entry point for most users. It provides:
|
|
155
|
+
* - Single agent access via agent(id)
|
|
156
|
+
* - Multi-agent access via agents([ids])
|
|
157
|
+
* - Broadcast access via allAgents()
|
|
158
|
+
* - Simple parallel execution using Promise.all()
|
|
159
|
+
*
|
|
160
|
+
* @example Basic usage
|
|
161
|
+
* ```typescript
|
|
162
|
+
* const client = new ADCPMultiAgentClient([
|
|
163
|
+
* { id: 'agent1', name: 'Agent 1', agent_uri: 'https://agent1.com', protocol: 'mcp' },
|
|
164
|
+
* { id: 'agent2', name: 'Agent 2', agent_uri: 'https://agent2.com', protocol: 'a2a' }
|
|
165
|
+
* ]);
|
|
166
|
+
*
|
|
167
|
+
* // Single agent
|
|
168
|
+
* const result = await client.agent('agent1').getProducts(params, handler);
|
|
169
|
+
*
|
|
170
|
+
* // Multiple specific agents
|
|
171
|
+
* const results = await client.agents(['agent1', 'agent2']).getProducts(params, handler);
|
|
172
|
+
*
|
|
173
|
+
* // All agents
|
|
174
|
+
* const allResults = await client.allAgents().getProducts(params, handler);
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
class ADCPMultiAgentClient {
|
|
178
|
+
config;
|
|
179
|
+
agentClients = new Map();
|
|
180
|
+
constructor(agentConfigs, config = {}) {
|
|
181
|
+
this.config = config;
|
|
182
|
+
for (const agentConfig of agentConfigs) {
|
|
183
|
+
this.agentClients.set(agentConfig.id, new AgentClient_1.AgentClient(agentConfig, config));
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// ====== FACTORY METHODS FOR EASY SETUP ======
|
|
187
|
+
/**
|
|
188
|
+
* Create client by auto-discovering agent configuration
|
|
189
|
+
*
|
|
190
|
+
* Automatically loads agents from:
|
|
191
|
+
* 1. Environment variables (SALES_AGENTS_CONFIG, ADCP_AGENTS_CONFIG, etc.)
|
|
192
|
+
* 2. Config files (adcp.config.json, adcp.json, .adcp.json, agents.json)
|
|
193
|
+
*
|
|
194
|
+
* @param config - Optional client configuration
|
|
195
|
+
* @returns ADCPMultiAgentClient instance with discovered agents
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* ```typescript
|
|
199
|
+
* // Simplest possible setup - auto-discovers configuration
|
|
200
|
+
* const client = ADCPMultiAgentClient.fromConfig();
|
|
201
|
+
*
|
|
202
|
+
* // Use with options
|
|
203
|
+
* const client = ADCPMultiAgentClient.fromConfig({
|
|
204
|
+
* debug: true,
|
|
205
|
+
* defaultTimeout: 60000
|
|
206
|
+
* });
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
static fromConfig(config) {
|
|
210
|
+
const agents = ConfigurationManager_1.ConfigurationManager.loadAgents();
|
|
211
|
+
if (agents.length === 0) {
|
|
212
|
+
console.log('\n' + ConfigurationManager_1.ConfigurationManager.getConfigurationHelp());
|
|
213
|
+
throw new Error('No ADCP agents configured. See configuration help above.');
|
|
214
|
+
}
|
|
215
|
+
// Validate configuration
|
|
216
|
+
ConfigurationManager_1.ConfigurationManager.validateAgentsConfig(agents);
|
|
217
|
+
return new ADCPMultiAgentClient(agents, config);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Create client from environment variables only
|
|
221
|
+
*
|
|
222
|
+
* @param config - Optional client configuration
|
|
223
|
+
* @returns ADCPMultiAgentClient instance with environment-loaded agents
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* ```typescript
|
|
227
|
+
* // Load agents from SALES_AGENTS_CONFIG environment variable
|
|
228
|
+
* const client = ADCPMultiAgentClient.fromEnv();
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
static fromEnv(config) {
|
|
232
|
+
const agents = ConfigurationManager_1.ConfigurationManager.loadAgentsFromEnv();
|
|
233
|
+
if (agents.length === 0) {
|
|
234
|
+
const envVars = ConfigurationManager_1.ConfigurationManager.getEnvVars();
|
|
235
|
+
throw new Error(`No agents found in environment variables. ` +
|
|
236
|
+
`Please set one of: ${envVars.join(', ')}`);
|
|
237
|
+
}
|
|
238
|
+
ConfigurationManager_1.ConfigurationManager.validateAgentsConfig(agents);
|
|
239
|
+
return new ADCPMultiAgentClient(agents, config);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Create client from a specific config file
|
|
243
|
+
*
|
|
244
|
+
* @param configPath - Path to configuration file
|
|
245
|
+
* @param config - Optional client configuration
|
|
246
|
+
* @returns ADCPMultiAgentClient instance with file-loaded agents
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* // Load from specific file
|
|
251
|
+
* const client = ADCPMultiAgentClient.fromFile('./my-agents.json');
|
|
252
|
+
*
|
|
253
|
+
* // Load from default locations
|
|
254
|
+
* const client = ADCPMultiAgentClient.fromFile();
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
static fromFile(configPath, config) {
|
|
258
|
+
const agents = ConfigurationManager_1.ConfigurationManager.loadAgentsFromConfig(configPath);
|
|
259
|
+
if (agents.length === 0) {
|
|
260
|
+
const searchPaths = configPath ? [configPath] : ConfigurationManager_1.ConfigurationManager.getConfigPaths();
|
|
261
|
+
throw new Error(`No agents found in config file(s). Searched: ${searchPaths.join(', ')}`);
|
|
262
|
+
}
|
|
263
|
+
ConfigurationManager_1.ConfigurationManager.validateAgentsConfig(agents);
|
|
264
|
+
return new ADCPMultiAgentClient(agents, config);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Create a simple client with minimal configuration
|
|
268
|
+
*
|
|
269
|
+
* @param agentUrl - Single agent URL
|
|
270
|
+
* @param options - Optional agent and client configuration
|
|
271
|
+
* @returns ADCPMultiAgentClient instance with single agent
|
|
272
|
+
*
|
|
273
|
+
* @example
|
|
274
|
+
* ```typescript
|
|
275
|
+
* // Simplest possible setup for single agent
|
|
276
|
+
* const client = ADCPMultiAgentClient.simple('https://my-agent.example.com');
|
|
277
|
+
*
|
|
278
|
+
* // With options
|
|
279
|
+
* const client = ADCPMultiAgentClient.simple('https://my-agent.example.com', {
|
|
280
|
+
* agentName: 'My Agent',
|
|
281
|
+
* protocol: 'mcp',
|
|
282
|
+
* requiresAuth: true,
|
|
283
|
+
* debug: true
|
|
284
|
+
* });
|
|
285
|
+
* ```
|
|
286
|
+
*/
|
|
287
|
+
static simple(agentUrl, options = {}) {
|
|
288
|
+
const { agentId = 'default-agent', agentName = 'Default Agent', protocol = 'mcp', requiresAuth = false, authTokenEnv, debug = false, timeout } = options;
|
|
289
|
+
const agent = {
|
|
290
|
+
id: agentId,
|
|
291
|
+
name: agentName,
|
|
292
|
+
agent_uri: agentUrl,
|
|
293
|
+
protocol,
|
|
294
|
+
requiresAuth,
|
|
295
|
+
auth_token_env: authTokenEnv
|
|
296
|
+
};
|
|
297
|
+
ConfigurationManager_1.ConfigurationManager.validateAgentConfig(agent);
|
|
298
|
+
return new ADCPMultiAgentClient([agent], {
|
|
299
|
+
debug,
|
|
300
|
+
workingTimeout: timeout
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
// ====== SINGLE AGENT ACCESS ======
|
|
304
|
+
/**
|
|
305
|
+
* Get a single agent for operations
|
|
306
|
+
*
|
|
307
|
+
* @param agentId - ID of the agent to get
|
|
308
|
+
* @returns AgentClient for the specified agent
|
|
309
|
+
* @throws Error if agent not found
|
|
310
|
+
*
|
|
311
|
+
* @example
|
|
312
|
+
* ```typescript
|
|
313
|
+
* const agent = client.agent('premium-agent');
|
|
314
|
+
* const products = await agent.getProducts({ brief: 'Coffee brands' }, handler);
|
|
315
|
+
* const refined = await agent.continueConversation('Focus on premium brands');
|
|
316
|
+
* ```
|
|
317
|
+
*/
|
|
318
|
+
agent(agentId) {
|
|
319
|
+
const agent = this.agentClients.get(agentId);
|
|
320
|
+
if (!agent) {
|
|
321
|
+
throw new Error(`Agent '${agentId}' not found. Available agents: ${this.getAgentIds().join(', ')}`);
|
|
322
|
+
}
|
|
323
|
+
return agent;
|
|
324
|
+
}
|
|
325
|
+
// ====== MULTI-AGENT ACCESS ======
|
|
326
|
+
/**
|
|
327
|
+
* Get multiple specific agents for parallel operations
|
|
328
|
+
*
|
|
329
|
+
* @param agentIds - Array of agent IDs
|
|
330
|
+
* @returns AgentCollection for parallel operations
|
|
331
|
+
* @throws Error if any agent not found
|
|
332
|
+
*
|
|
333
|
+
* @example
|
|
334
|
+
* ```typescript
|
|
335
|
+
* const agents = client.agents(['agent1', 'agent2']);
|
|
336
|
+
* const results = await agents.getProducts({ brief: 'Coffee brands' }, handler);
|
|
337
|
+
*
|
|
338
|
+
* // Process results
|
|
339
|
+
* results.forEach(result => {
|
|
340
|
+
* if (result.success) {
|
|
341
|
+
* console.log(`${result.metadata.agent.name}: ${result.data.products.length} products`);
|
|
342
|
+
* }
|
|
343
|
+
* });
|
|
344
|
+
* ```
|
|
345
|
+
*/
|
|
346
|
+
agents(agentIds) {
|
|
347
|
+
const agentConfigs = [];
|
|
348
|
+
for (const agentId of agentIds) {
|
|
349
|
+
const agent = this.agentClients.get(agentId);
|
|
350
|
+
if (!agent) {
|
|
351
|
+
throw new Error(`Agent '${agentId}' not found. Available agents: ${this.getAgentIds().join(', ')}`);
|
|
352
|
+
}
|
|
353
|
+
agentConfigs.push(agent.getAgent());
|
|
354
|
+
}
|
|
355
|
+
return new AgentCollection(agentConfigs, this.config);
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Get all configured agents for broadcast operations
|
|
359
|
+
*
|
|
360
|
+
* @returns AgentCollection containing all agents
|
|
361
|
+
*
|
|
362
|
+
* @example
|
|
363
|
+
* ```typescript
|
|
364
|
+
* const allResults = await client.allAgents().getProducts({
|
|
365
|
+
* brief: 'Premium coffee brands'
|
|
366
|
+
* }, handler);
|
|
367
|
+
*
|
|
368
|
+
* // Find best result
|
|
369
|
+
* const successful = allResults.filter(r => r.success);
|
|
370
|
+
* const bestResult = successful.sort((a, b) =>
|
|
371
|
+
* b.data.products.length - a.data.products.length
|
|
372
|
+
* )[0];
|
|
373
|
+
* ```
|
|
374
|
+
*/
|
|
375
|
+
allAgents() {
|
|
376
|
+
if (this.agentClients.size === 0) {
|
|
377
|
+
throw new Error('No agents configured. Add agents to the client first.');
|
|
378
|
+
}
|
|
379
|
+
const agentConfigs = Array.from(this.agentClients.values()).map(agent => agent.getAgent());
|
|
380
|
+
return new AgentCollection(agentConfigs, this.config);
|
|
381
|
+
}
|
|
382
|
+
// ====== AGENT MANAGEMENT ======
|
|
383
|
+
/**
|
|
384
|
+
* Add an agent to the client
|
|
385
|
+
*
|
|
386
|
+
* @param agentConfig - Agent configuration to add
|
|
387
|
+
* @throws Error if agent ID already exists
|
|
388
|
+
*/
|
|
389
|
+
addAgent(agentConfig) {
|
|
390
|
+
if (this.agentClients.has(agentConfig.id)) {
|
|
391
|
+
throw new Error(`Agent with ID '${agentConfig.id}' already exists`);
|
|
392
|
+
}
|
|
393
|
+
this.agentClients.set(agentConfig.id, new AgentClient_1.AgentClient(agentConfig, this.config));
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Remove an agent from the client
|
|
397
|
+
*
|
|
398
|
+
* @param agentId - ID of agent to remove
|
|
399
|
+
* @returns True if agent was removed, false if not found
|
|
400
|
+
*/
|
|
401
|
+
removeAgent(agentId) {
|
|
402
|
+
return this.agentClients.delete(agentId);
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Check if an agent exists
|
|
406
|
+
*/
|
|
407
|
+
hasAgent(agentId) {
|
|
408
|
+
return this.agentClients.has(agentId);
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Get all configured agent IDs
|
|
412
|
+
*/
|
|
413
|
+
getAgentIds() {
|
|
414
|
+
return Array.from(this.agentClients.keys());
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Get all agent configurations
|
|
418
|
+
*/
|
|
419
|
+
getAgentConfigs() {
|
|
420
|
+
return Array.from(this.agentClients.values()).map(agent => agent.getAgent());
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Get count of configured agents
|
|
424
|
+
*/
|
|
425
|
+
get agentCount() {
|
|
426
|
+
return this.agentClients.size;
|
|
427
|
+
}
|
|
428
|
+
// ====== UTILITY METHODS ======
|
|
429
|
+
/**
|
|
430
|
+
* Filter agents by protocol
|
|
431
|
+
*/
|
|
432
|
+
getAgentsByProtocol(protocol) {
|
|
433
|
+
const filteredConfigs = Array.from(this.agentClients.values())
|
|
434
|
+
.filter(agent => agent.getProtocol() === protocol)
|
|
435
|
+
.map(agent => agent.getAgent());
|
|
436
|
+
return new AgentCollection(filteredConfigs, this.config);
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Find agents that support a specific task
|
|
440
|
+
* This is a placeholder - in a full implementation, you'd query agent capabilities
|
|
441
|
+
*/
|
|
442
|
+
findAgentsForTask(taskName) {
|
|
443
|
+
// For now, assume all agents support all tasks
|
|
444
|
+
return this.allAgents();
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Get all active tasks across all agents
|
|
448
|
+
*/
|
|
449
|
+
getAllActiveTasks() {
|
|
450
|
+
const allTasks = [];
|
|
451
|
+
for (const agent of this.agentClients.values()) {
|
|
452
|
+
allTasks.push(...agent.getActiveTasks());
|
|
453
|
+
}
|
|
454
|
+
return allTasks;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
exports.ADCPMultiAgentClient = ADCPMultiAgentClient;
|
|
458
|
+
/**
|
|
459
|
+
* Factory function to create a multi-agent ADCP client
|
|
460
|
+
*
|
|
461
|
+
* @param agents - Array of agent configurations
|
|
462
|
+
* @param config - Client configuration
|
|
463
|
+
* @returns Configured ADCPMultiAgentClient instance
|
|
464
|
+
*/
|
|
465
|
+
function createADCPMultiAgentClient(agents, config) {
|
|
466
|
+
return new ADCPMultiAgentClient(agents, config);
|
|
467
|
+
}
|
|
468
|
+
//# sourceMappingURL=ADCPMultiAgentClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ADCPMultiAgentClient.js","sourceRoot":"","sources":["../../../src/lib/core/ADCPMultiAgentClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { AgentConfig } from '../types';
|
|
2
|
+
import { type ADCPClientConfig } from './ADCPClient';
|
|
3
|
+
import type { InputHandler, TaskOptions, TaskResult, Message } from './ConversationTypes';
|
|
4
|
+
import type { GetProductsRequest, GetProductsResponse, ListCreativeFormatsRequest, ListCreativeFormatsResponse, CreateMediaBuyRequest, CreateMediaBuyResponse, UpdateMediaBuyRequest, UpdateMediaBuyResponse, SyncCreativesRequest, SyncCreativesResponse, ListCreativesRequest, ListCreativesResponse, GetMediaBuyDeliveryRequest, GetMediaBuyDeliveryResponse, ListAuthorizedPropertiesRequest, ListAuthorizedPropertiesResponse, ProvidePerformanceFeedbackRequest, ProvidePerformanceFeedbackResponse, GetSignalsRequest, GetSignalsResponse, ActivateSignalRequest, ActivateSignalResponse } from '../types/tools.generated';
|
|
5
|
+
/**
|
|
6
|
+
* Per-agent client that maintains conversation context across calls
|
|
7
|
+
*
|
|
8
|
+
* This wrapper provides a persistent conversation context for a single agent,
|
|
9
|
+
* making it easy to have multi-turn conversations and maintain state.
|
|
10
|
+
*/
|
|
11
|
+
export declare class AgentClient {
|
|
12
|
+
private agent;
|
|
13
|
+
private config;
|
|
14
|
+
private client;
|
|
15
|
+
private currentContextId?;
|
|
16
|
+
constructor(agent: AgentConfig, config?: ADCPClientConfig);
|
|
17
|
+
/**
|
|
18
|
+
* Discover available advertising products
|
|
19
|
+
*/
|
|
20
|
+
getProducts(params: GetProductsRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<GetProductsResponse>>;
|
|
21
|
+
/**
|
|
22
|
+
* List available creative formats
|
|
23
|
+
*/
|
|
24
|
+
listCreativeFormats(params: ListCreativeFormatsRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ListCreativeFormatsResponse>>;
|
|
25
|
+
/**
|
|
26
|
+
* Create a new media buy
|
|
27
|
+
*/
|
|
28
|
+
createMediaBuy(params: CreateMediaBuyRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<CreateMediaBuyResponse>>;
|
|
29
|
+
/**
|
|
30
|
+
* Update an existing media buy
|
|
31
|
+
*/
|
|
32
|
+
updateMediaBuy(params: UpdateMediaBuyRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<UpdateMediaBuyResponse>>;
|
|
33
|
+
/**
|
|
34
|
+
* Sync creative assets
|
|
35
|
+
*/
|
|
36
|
+
syncCreatives(params: SyncCreativesRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SyncCreativesResponse>>;
|
|
37
|
+
/**
|
|
38
|
+
* List creative assets
|
|
39
|
+
*/
|
|
40
|
+
listCreatives(params: ListCreativesRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ListCreativesResponse>>;
|
|
41
|
+
/**
|
|
42
|
+
* Get media buy delivery information
|
|
43
|
+
*/
|
|
44
|
+
getMediaBuyDelivery(params: GetMediaBuyDeliveryRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<GetMediaBuyDeliveryResponse>>;
|
|
45
|
+
/**
|
|
46
|
+
* List authorized properties
|
|
47
|
+
*/
|
|
48
|
+
listAuthorizedProperties(params: ListAuthorizedPropertiesRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ListAuthorizedPropertiesResponse>>;
|
|
49
|
+
/**
|
|
50
|
+
* Provide performance feedback
|
|
51
|
+
*/
|
|
52
|
+
providePerformanceFeedback(params: ProvidePerformanceFeedbackRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ProvidePerformanceFeedbackResponse>>;
|
|
53
|
+
/**
|
|
54
|
+
* Get audience signals
|
|
55
|
+
*/
|
|
56
|
+
getSignals(params: GetSignalsRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<GetSignalsResponse>>;
|
|
57
|
+
/**
|
|
58
|
+
* Activate audience signals
|
|
59
|
+
*/
|
|
60
|
+
activateSignal(params: ActivateSignalRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ActivateSignalResponse>>;
|
|
61
|
+
/**
|
|
62
|
+
* Continue the conversation with a natural language message
|
|
63
|
+
*
|
|
64
|
+
* @param message - Natural language message to send to the agent
|
|
65
|
+
* @param inputHandler - Handler for any clarification requests
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const agent = multiClient.agent('my-agent');
|
|
70
|
+
* await agent.getProducts({ brief: 'Tech products' });
|
|
71
|
+
*
|
|
72
|
+
* // Continue the conversation
|
|
73
|
+
* const refined = await agent.continueConversation(
|
|
74
|
+
* 'Focus only on laptops under $1000'
|
|
75
|
+
* );
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
continueConversation<T = any>(message: string, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<T>>;
|
|
79
|
+
/**
|
|
80
|
+
* Get the full conversation history
|
|
81
|
+
*/
|
|
82
|
+
getHistory(): Message[] | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* Clear the conversation context (start fresh)
|
|
85
|
+
*/
|
|
86
|
+
clearContext(): void;
|
|
87
|
+
/**
|
|
88
|
+
* Get the current conversation context ID
|
|
89
|
+
*/
|
|
90
|
+
getContextId(): string | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Set a specific conversation context ID
|
|
93
|
+
*/
|
|
94
|
+
setContextId(contextId: string): void;
|
|
95
|
+
/**
|
|
96
|
+
* Get the agent configuration
|
|
97
|
+
*/
|
|
98
|
+
getAgent(): AgentConfig;
|
|
99
|
+
/**
|
|
100
|
+
* Get the agent ID
|
|
101
|
+
*/
|
|
102
|
+
getAgentId(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Get the agent name
|
|
105
|
+
*/
|
|
106
|
+
getAgentName(): string;
|
|
107
|
+
/**
|
|
108
|
+
* Get the agent protocol
|
|
109
|
+
*/
|
|
110
|
+
getProtocol(): 'mcp' | 'a2a';
|
|
111
|
+
/**
|
|
112
|
+
* Check if there's an active conversation
|
|
113
|
+
*/
|
|
114
|
+
hasActiveConversation(): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Get active tasks for this agent
|
|
117
|
+
*/
|
|
118
|
+
getActiveTasks(): import("./ConversationTypes").TaskState[];
|
|
119
|
+
/**
|
|
120
|
+
* Execute any task by name, maintaining conversation context
|
|
121
|
+
*/
|
|
122
|
+
executeTask<T = any>(taskName: string, params: any, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<T>>;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=AgentClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentClient.d.ts","sourceRoot":"","sources":["../../../src/lib/core/AgentClient.ts"],"names":[],"mappings":"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"}
|