psadk 1.1.0 → 1.1.2
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 +6 -0
- package/build/main/index.d.ts +5 -0
- package/build/main/index.js +7 -1
- package/build/main/lib/PSAI.d.ts +1 -1
- package/build/main/lib/PSAgent.d.ts +11 -0
- package/build/main/lib/PSAgent.js +59 -30
- package/build/main/lib/PSAgentConfig.d.ts +1 -1
- package/build/main/lib/PSAgentLogger.d.ts +7 -0
- package/build/main/lib/PSAgentLogger.js +20 -5
- package/build/main/lib/jwt.js +3 -1
- package/build/main/lib/tools/BraveWebSearchTool.d.ts +11 -0
- package/build/main/lib/tools/BraveWebSearchTool.js +89 -0
- package/build/main/lib/tools/PSCommandLineTool.d.ts +10 -0
- package/build/main/lib/tools/PSCommandLineTool.js +74 -0
- package/build/main/lib/tools/PSMemoryTool.d.ts +45 -0
- package/build/main/lib/tools/PSMemoryTool.js +485 -0
- package/build/main/lib/tools/PSReadFileTool.d.ts +10 -0
- package/build/main/lib/tools/PSReadFileTool.js +68 -0
- package/build/main/lib/tools/PSSubAgentTool.js +141 -14
- package/build/main/lib/tools/PSWriteFileTool.d.ts +10 -0
- package/build/main/lib/tools/PSWriteFileTool.js +74 -0
- package/build/main/lib/tools/ReadFileTool.d.ts +10 -0
- package/build/main/lib/tools/ReadFileTool.js +68 -0
- package/build/main/lib/tools/TodoTool.d.ts +57 -0
- package/build/main/lib/tools/TodoTool.js +220 -0
- package/build/main/lib/tools/WebSearchTool.d.ts +9 -0
- package/build/main/lib/tools/WebSearchTool.js +92 -0
- package/build/main/lib/tools/WriteFileTool.d.ts +10 -0
- package/build/main/lib/tools/WriteFileTool.js +74 -0
- package/build/main/lib/utils/debuglogger.d.ts +7 -0
- package/build/main/lib/utils/debuglogger.js +25 -0
- package/build/main/lib/utils/helpers.d.ts +4 -0
- package/build/main/lib/utils/helpers.js +41 -0
- package/build/module/index.d.ts +5 -0
- package/build/module/index.js +29 -7
- package/build/module/lib/PSAI.d.ts +4 -0
- package/build/module/lib/PSAI.js +101 -24
- package/build/module/lib/PSAgent.d.ts +21 -10
- package/build/module/lib/PSAgent.js +126 -85
- package/build/module/lib/PSAgentConfig.d.ts +23 -0
- package/build/module/lib/PSAgentConfig.js +3 -0
- package/build/module/lib/PSAgentLogger.d.ts +20 -0
- package/build/module/lib/PSAgentLogger.js +51 -0
- package/build/module/lib/PSAgentTask.d.ts +12 -0
- package/build/module/lib/PSAgentTask.js +33 -0
- package/build/module/lib/PSAgentTool.d.ts +56 -0
- package/build/module/lib/PSAgentTool.js +91 -0
- package/build/module/lib/jwt.d.ts +41 -0
- package/build/module/lib/jwt.js +75 -0
- package/build/module/lib/tools/BraveWebSearchTool.d.ts +11 -0
- package/build/module/lib/tools/BraveWebSearchTool.js +90 -0
- package/build/module/lib/tools/PSArtifactTool.d.ts +7 -0
- package/build/module/lib/tools/PSArtifactTool.js +79 -0
- package/build/module/lib/tools/PSCommandLineTool.d.ts +10 -0
- package/build/module/lib/tools/PSCommandLineTool.js +75 -0
- package/build/module/lib/tools/PSMemoryTool.d.ts +45 -0
- package/build/module/lib/tools/PSMemoryTool.js +487 -0
- package/build/module/lib/tools/PSReadFileTool.d.ts +10 -0
- package/build/module/lib/tools/PSReadFileTool.js +68 -0
- package/build/module/lib/tools/PSSubAgentTool.d.ts +20 -0
- package/build/module/lib/tools/PSSubAgentTool.js +289 -0
- package/build/module/lib/tools/PSWriteFileTool.d.ts +10 -0
- package/build/module/lib/tools/PSWriteFileTool.js +74 -0
- package/build/module/lib/tools/TodoTool.d.ts +57 -0
- package/build/module/lib/tools/TodoTool.js +224 -0
- package/build/module/lib/utils/debuglogger.d.ts +7 -0
- package/build/module/lib/utils/debuglogger.js +25 -0
- package/build/module/lib/utils/helpers.d.ts +4 -0
- package/build/module/lib/utils/helpers.js +41 -0
- package/package.json +1 -1
|
@@ -1,18 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PSAgent = void 0;
|
|
7
|
+
exports.sleep = sleep;
|
|
8
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
11
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
+
const server_1 = require("@a2a-js/sdk/server");
|
|
13
|
+
const express_1 = require("@a2a-js/sdk/server/express");
|
|
14
|
+
const express_2 = __importDefault(require("express"));
|
|
15
|
+
const fetch_retry_1 = __importDefault(require("fetch-retry"));
|
|
16
|
+
const uuid_1 = require("uuid"); // For generating unique IDs
|
|
17
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
18
|
+
const v4_1 = require("zod/v4");
|
|
19
|
+
const PSAgentTask_1 = require("./PSAgentTask");
|
|
20
|
+
const PSAgentTool_1 = require("./PSAgentTool");
|
|
21
|
+
const PSSubAgentTool_1 = require("./tools/PSSubAgentTool");
|
|
13
22
|
// fetch-retry can also wrap Node.js's native fetch API implementation:
|
|
14
|
-
const fetch =
|
|
15
|
-
|
|
23
|
+
const fetch = (0, fetch_retry_1.default)(global.fetch);
|
|
24
|
+
async function sleep(ms) {
|
|
16
25
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
26
|
}
|
|
18
27
|
/**
|
|
@@ -43,7 +52,7 @@ export async function sleep(ms) {
|
|
|
43
52
|
* token: token,
|
|
44
53
|
* port: 41241,
|
|
45
54
|
* });
|
|
46
|
-
* const { app, port } = HelloAgent.
|
|
55
|
+
* const { app, port } = HelloAgent.getA2AServer();
|
|
47
56
|
* app.listen(port, () => {
|
|
48
57
|
* console.log('HelloAgent is running on http://localhost:${port}');
|
|
49
58
|
* });
|
|
@@ -58,7 +67,7 @@ export async function sleep(ms) {
|
|
|
58
67
|
* https://a2aproject.com/docs/getting-started/quickstart
|
|
59
68
|
*
|
|
60
69
|
*/
|
|
61
|
-
|
|
70
|
+
class PSAgent {
|
|
62
71
|
config;
|
|
63
72
|
tools = [];
|
|
64
73
|
tasks = [];
|
|
@@ -66,7 +75,7 @@ export class PSAgent {
|
|
|
66
75
|
correlationId;
|
|
67
76
|
log;
|
|
68
77
|
cancelledTasks = new Set();
|
|
69
|
-
cancelTask = async (taskId
|
|
78
|
+
cancelTask = async (taskId) => {
|
|
70
79
|
this.cancelledTasks.add(taskId);
|
|
71
80
|
// The execute loop is responsible for publishing the final state
|
|
72
81
|
};
|
|
@@ -148,7 +157,16 @@ export class PSAgent {
|
|
|
148
157
|
* @returns Array of PSAgentTool instances
|
|
149
158
|
*/
|
|
150
159
|
get Tools() {
|
|
151
|
-
|
|
160
|
+
const mergedTools = [...this.config.tools || [], ...this.tools];
|
|
161
|
+
if (this.config.sub_agents && this.config.sub_agents.length > 0) {
|
|
162
|
+
const subagents = [];
|
|
163
|
+
// add a PSSubAgentTool for each sub_agent in config
|
|
164
|
+
for (const subAgentConfig of this.config.sub_agents) {
|
|
165
|
+
subagents.push(new PSAgent(Object.assign({}, subAgentConfig, { token: this.config.token })));
|
|
166
|
+
}
|
|
167
|
+
mergedTools.push(new PSSubAgentTool_1.PSSubAgentTool(subagents));
|
|
168
|
+
}
|
|
169
|
+
return mergedTools;
|
|
152
170
|
}
|
|
153
171
|
/**
|
|
154
172
|
* Get the Tasks for the Agent
|
|
@@ -165,6 +183,13 @@ export class PSAgent {
|
|
|
165
183
|
get AgentId() {
|
|
166
184
|
return this.agentId;
|
|
167
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Set the Agent ID after starting the agent
|
|
188
|
+
* @param value Agent ID string to set
|
|
189
|
+
*/
|
|
190
|
+
set AgentId(value) {
|
|
191
|
+
this.agentId = value;
|
|
192
|
+
}
|
|
168
193
|
/**
|
|
169
194
|
* Get the Correlation ID after starting the agent
|
|
170
195
|
* @returns Correlation ID string or undefined if not started
|
|
@@ -172,6 +197,16 @@ export class PSAgent {
|
|
|
172
197
|
get CorrelationId() {
|
|
173
198
|
return this.correlationId;
|
|
174
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Set the Correlation ID after starting the agent
|
|
202
|
+
* @param value Correlation ID string to set
|
|
203
|
+
*/
|
|
204
|
+
set CorrelationId(value) {
|
|
205
|
+
this.correlationId = value;
|
|
206
|
+
}
|
|
207
|
+
get Config() {
|
|
208
|
+
return this.config;
|
|
209
|
+
}
|
|
175
210
|
/**
|
|
176
211
|
* Add tools to the agent dynamically
|
|
177
212
|
* @param tool PSAgentTool to add to the agent
|
|
@@ -230,8 +265,8 @@ export class PSAgent {
|
|
|
230
265
|
*/
|
|
231
266
|
async start(input, history, log) {
|
|
232
267
|
log = log || this.log;
|
|
233
|
-
const ischema = this.InputSchema ? this.InputSchema : z.toJSONSchema(z.object({
|
|
234
|
-
query: z.string().meta({
|
|
268
|
+
const ischema = this.InputSchema ? this.InputSchema : v4_1.z.toJSONSchema(v4_1.z.object({
|
|
269
|
+
query: v4_1.z.string().meta({
|
|
235
270
|
title: "query",
|
|
236
271
|
description: "The query by the user."
|
|
237
272
|
}),
|
|
@@ -271,8 +306,8 @@ export class PSAgent {
|
|
|
271
306
|
});
|
|
272
307
|
}
|
|
273
308
|
// console.log("input schema:", JSON.stringify(ischema, null, 2));
|
|
274
|
-
const output_schema = this.OutputSchema || z.toJSONSchema(z.object({
|
|
275
|
-
response: z.string().meta({
|
|
309
|
+
const output_schema = this.OutputSchema || v4_1.z.toJSONSchema(v4_1.z.object({
|
|
310
|
+
response: v4_1.z.string().meta({
|
|
276
311
|
title: "Response",
|
|
277
312
|
description: "The response from the agent",
|
|
278
313
|
}),
|
|
@@ -303,13 +338,14 @@ export class PSAgent {
|
|
|
303
338
|
hitl: tool.HITL,
|
|
304
339
|
inputs: tool.Inputs
|
|
305
340
|
})),
|
|
306
|
-
|
|
341
|
+
existing_tool_ids: []
|
|
307
342
|
},
|
|
308
343
|
planning: {
|
|
309
344
|
plan_required: this.config.show_plan || false,
|
|
310
345
|
hitl: this.config.hitl_for_plan || false
|
|
311
346
|
},
|
|
312
347
|
};
|
|
348
|
+
console.log(`Starting agent with body: ${JSON.stringify(body, null, 2)}`);
|
|
313
349
|
try {
|
|
314
350
|
const headers = await this.getAuthHeaders();
|
|
315
351
|
// log?.debug('Starting agent with headers:', headers);
|
|
@@ -330,7 +366,7 @@ export class PSAgent {
|
|
|
330
366
|
}
|
|
331
367
|
return false;
|
|
332
368
|
},
|
|
333
|
-
retryDelay: function (attempt
|
|
369
|
+
retryDelay: function (attempt) {
|
|
334
370
|
return Math.pow(2, attempt) * 1000; // 1000, 2000, 4000
|
|
335
371
|
}
|
|
336
372
|
});
|
|
@@ -340,10 +376,10 @@ export class PSAgent {
|
|
|
340
376
|
errorDetails = await response.text();
|
|
341
377
|
}
|
|
342
378
|
catch (e) {
|
|
343
|
-
throw new Error(`Unable to start agent. status: ${response.status}`);
|
|
379
|
+
throw new Error(`Unable to start agent. status: ${response.status}. ${e}`);
|
|
344
380
|
}
|
|
345
381
|
if (errorDetails) {
|
|
346
|
-
throw new Error(`Unable to start agent. status: ${response.status}, details: ${JSON.stringify(errorDetails)}`);
|
|
382
|
+
throw new Error(`Unable to start agent. status: ${response.status}, details: ${JSON.stringify(errorDetails, null, 2)}`);
|
|
347
383
|
}
|
|
348
384
|
}
|
|
349
385
|
const responseData = (await response.json());
|
|
@@ -387,7 +423,7 @@ export class PSAgent {
|
|
|
387
423
|
}
|
|
388
424
|
return false;
|
|
389
425
|
},
|
|
390
|
-
retryDelay: function (attempt
|
|
426
|
+
retryDelay: function (attempt) {
|
|
391
427
|
return Math.pow(2, attempt) * 1000; // 1000, 2000, 4000
|
|
392
428
|
}
|
|
393
429
|
});
|
|
@@ -429,7 +465,7 @@ export class PSAgent {
|
|
|
429
465
|
}
|
|
430
466
|
return false;
|
|
431
467
|
},
|
|
432
|
-
retryDelay: function (attempt
|
|
468
|
+
retryDelay: function (attempt) {
|
|
433
469
|
return Math.pow(2, attempt) * 1000; // 1000, 2000, 4000
|
|
434
470
|
}
|
|
435
471
|
});
|
|
@@ -437,10 +473,10 @@ export class PSAgent {
|
|
|
437
473
|
let errorDetails;
|
|
438
474
|
try {
|
|
439
475
|
errorDetails = await response.json();
|
|
440
|
-
log?.error(await response.json());
|
|
476
|
+
log?.error((await response.json()));
|
|
441
477
|
}
|
|
442
478
|
catch (e) {
|
|
443
|
-
throw new Error(`Unable to cancel agent status: ${response.status}`);
|
|
479
|
+
throw new Error(`Unable to cancel agent status: ${response.status}, ${e}`);
|
|
444
480
|
}
|
|
445
481
|
if (errorDetails) {
|
|
446
482
|
throw new Error(`Unable to cancel agent status: ${response.status}, details: ${JSON.stringify(errorDetails)}`);
|
|
@@ -478,7 +514,7 @@ export class PSAgent {
|
|
|
478
514
|
}
|
|
479
515
|
return false;
|
|
480
516
|
},
|
|
481
|
-
retryDelay: function (attempt
|
|
517
|
+
retryDelay: function (attempt) {
|
|
482
518
|
return Math.pow(2, attempt) * 1000; // 1000, 2000, 4000
|
|
483
519
|
}
|
|
484
520
|
});
|
|
@@ -515,7 +551,7 @@ export class PSAgent {
|
|
|
515
551
|
* ```
|
|
516
552
|
*/
|
|
517
553
|
async executeTool(toolName, input, log) {
|
|
518
|
-
|
|
554
|
+
const results = { error: null };
|
|
519
555
|
const tool = this.Tools.find(t => t.Name === toolName);
|
|
520
556
|
if (!tool) {
|
|
521
557
|
results.error = new Error(`Tool with name ${toolName} not found`);
|
|
@@ -552,8 +588,8 @@ export class PSAgent {
|
|
|
552
588
|
const log = this.log;
|
|
553
589
|
const userMessage = requestContext.userMessage;
|
|
554
590
|
const existingTask = requestContext.task;
|
|
555
|
-
const taskId = existingTask?.id ||
|
|
556
|
-
const contextId = userMessage.contextId || existingTask?.contextId ||
|
|
591
|
+
const taskId = existingTask?.id || (0, uuid_1.v4)();
|
|
592
|
+
const contextId = userMessage.contextId || existingTask?.contextId || (0, uuid_1.v4)();
|
|
557
593
|
log?.info(`[${this.Name}:AgentExecutor] Processing message ${userMessage.messageId} for task ${taskId} (context: ${contextId})`);
|
|
558
594
|
// 1. Publish initial Task event if it's a new task
|
|
559
595
|
if (!existingTask) {
|
|
@@ -581,7 +617,7 @@ export class PSAgent {
|
|
|
581
617
|
message: {
|
|
582
618
|
kind: 'message',
|
|
583
619
|
role: 'agent',
|
|
584
|
-
messageId:
|
|
620
|
+
messageId: (0, uuid_1.v4)(),
|
|
585
621
|
parts: [{ kind: 'text', text: 'Initializing the agent...' }],
|
|
586
622
|
taskId: taskId,
|
|
587
623
|
contextId: contextId,
|
|
@@ -619,7 +655,7 @@ export class PSAgent {
|
|
|
619
655
|
message: {
|
|
620
656
|
kind: 'message',
|
|
621
657
|
role: 'agent',
|
|
622
|
-
messageId:
|
|
658
|
+
messageId: (0, uuid_1.v4)(),
|
|
623
659
|
parts: [{ kind: 'text', text: 'No input message found to process.' }],
|
|
624
660
|
taskId: taskId,
|
|
625
661
|
contextId: contextId,
|
|
@@ -632,7 +668,7 @@ export class PSAgent {
|
|
|
632
668
|
return;
|
|
633
669
|
}
|
|
634
670
|
try {
|
|
635
|
-
|
|
671
|
+
const input = {};
|
|
636
672
|
if (userMessage.parts && userMessage.parts.length > 0) {
|
|
637
673
|
for (const part of userMessage.parts) {
|
|
638
674
|
if (part.kind === 'text' && part.text) {
|
|
@@ -641,31 +677,31 @@ export class PSAgent {
|
|
|
641
677
|
// TODO: handle other part kinds (e.g., images, files) here as needed
|
|
642
678
|
}
|
|
643
679
|
}
|
|
644
|
-
if (this.Tools.length === 0) {
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
}
|
|
680
|
+
// if (this.Tools.length === 0) {
|
|
681
|
+
// const ai=new PSAI(this.Token||'',this.getBaseUrl(),log);
|
|
682
|
+
// const llmResponse:any = await ai.llm(input.query, this.Model);
|
|
683
|
+
// //console.log("llmResponse:", llmResponse);
|
|
684
|
+
// const completedUpdate: TaskStatusUpdateEvent = {
|
|
685
|
+
// kind: 'status-update',
|
|
686
|
+
// taskId: taskId,
|
|
687
|
+
// contextId: contextId,
|
|
688
|
+
// status: {
|
|
689
|
+
// state: 'completed',
|
|
690
|
+
// message: {
|
|
691
|
+
// kind: 'message',
|
|
692
|
+
// role: 'agent',
|
|
693
|
+
// messageId: uuidv4(),
|
|
694
|
+
// parts: [{ kind: 'text', text: llmResponse.choices[0].message.content }],
|
|
695
|
+
// taskId: taskId,
|
|
696
|
+
// contextId: contextId,
|
|
697
|
+
// },
|
|
698
|
+
// timestamp: new Date().toISOString(),
|
|
699
|
+
// },
|
|
700
|
+
// final: true,
|
|
701
|
+
// };
|
|
702
|
+
// eventBus.publish(completedUpdate);
|
|
703
|
+
// return;
|
|
704
|
+
// }
|
|
669
705
|
this.log?.debug(`Agent input: ${JSON.stringify(input)}`);
|
|
670
706
|
await this.start(input, messages.slice(0, -1), log);
|
|
671
707
|
workingStatusUpdate = {
|
|
@@ -677,7 +713,7 @@ export class PSAgent {
|
|
|
677
713
|
message: {
|
|
678
714
|
kind: 'message',
|
|
679
715
|
role: 'agent',
|
|
680
|
-
messageId:
|
|
716
|
+
messageId: (0, uuid_1.v4)(),
|
|
681
717
|
parts: [{ kind: 'text', text: `started new agent ${this.AgentId}, correlationid: ${this.correlationId}` }],
|
|
682
718
|
taskId: taskId,
|
|
683
719
|
contextId: contextId,
|
|
@@ -723,6 +759,8 @@ export class PSAgent {
|
|
|
723
759
|
lastevent = event;
|
|
724
760
|
if (lastevent.agentStatus === "waiting") {
|
|
725
761
|
if (lastevent.tool.startsWith('mcp_')) {
|
|
762
|
+
//TODO: handle mcp tools
|
|
763
|
+
log?.info(`[${this.Name}:AgentExecutor] waiting for mcp tool ${lastevent.tool} to complete...`);
|
|
726
764
|
}
|
|
727
765
|
else if (lastevent.tool) {
|
|
728
766
|
log?.info(`[${this.Name}:AgentExecutor] toolcall: ${lastevent.tool}, ts:${lastevent.timestamp}, c:${processedEvents}\n`);
|
|
@@ -735,7 +773,7 @@ export class PSAgent {
|
|
|
735
773
|
message: {
|
|
736
774
|
kind: 'message',
|
|
737
775
|
role: 'agent',
|
|
738
|
-
messageId:
|
|
776
|
+
messageId: (0, uuid_1.v4)(),
|
|
739
777
|
parts: [{ kind: 'text', text: `invoking tool ${lastevent.tool}(${JSON.stringify(lastevent.toolInput.request_body)})...\n` }],
|
|
740
778
|
taskId: taskId,
|
|
741
779
|
contextId: contextId,
|
|
@@ -766,7 +804,7 @@ export class PSAgent {
|
|
|
766
804
|
message: {
|
|
767
805
|
kind: 'message',
|
|
768
806
|
role: 'agent',
|
|
769
|
-
messageId:
|
|
807
|
+
messageId: (0, uuid_1.v4)(),
|
|
770
808
|
parts: [{ kind: 'text', text: statusMsg }],
|
|
771
809
|
taskId: taskId,
|
|
772
810
|
contextId: contextId,
|
|
@@ -794,7 +832,7 @@ export class PSAgent {
|
|
|
794
832
|
else if (lastevent.agentStatus === "completed") {
|
|
795
833
|
log?.info(`Agent Execution Completed`);
|
|
796
834
|
log?.info(`---`);
|
|
797
|
-
log?.done(lastevent.output
|
|
835
|
+
log?.done(JSON.stringify(lastevent.output, null, 2));
|
|
798
836
|
}
|
|
799
837
|
else {
|
|
800
838
|
log?.warn(`#### ${lastevent.agentStatus}`);
|
|
@@ -815,7 +853,7 @@ export class PSAgent {
|
|
|
815
853
|
message: {
|
|
816
854
|
kind: 'message',
|
|
817
855
|
role: 'agent',
|
|
818
|
-
messageId:
|
|
856
|
+
messageId: (0, uuid_1.v4)(),
|
|
819
857
|
parts: [{ kind: 'text', text: `Agent execution failed: ${lastevent?.message || ''}` }],
|
|
820
858
|
taskId: taskId,
|
|
821
859
|
contextId: contextId,
|
|
@@ -836,8 +874,11 @@ export class PSAgent {
|
|
|
836
874
|
message: {
|
|
837
875
|
kind: 'message',
|
|
838
876
|
role: 'agent',
|
|
839
|
-
messageId:
|
|
840
|
-
parts: [
|
|
877
|
+
messageId: (0, uuid_1.v4)(),
|
|
878
|
+
parts: [
|
|
879
|
+
{ kind: 'text', text: lastevent.output.response },
|
|
880
|
+
{ kind: 'data', data: lastevent.output },
|
|
881
|
+
],
|
|
841
882
|
taskId: taskId,
|
|
842
883
|
contextId: contextId,
|
|
843
884
|
},
|
|
@@ -860,7 +901,7 @@ export class PSAgent {
|
|
|
860
901
|
message: {
|
|
861
902
|
kind: 'message',
|
|
862
903
|
role: 'agent',
|
|
863
|
-
messageId:
|
|
904
|
+
messageId: (0, uuid_1.v4)(),
|
|
864
905
|
parts: [{ kind: 'text', text: `Error processing your message: ${error instanceof Error ? error.message : String(error)}` }],
|
|
865
906
|
taskId: taskId,
|
|
866
907
|
contextId: contextId,
|
|
@@ -874,7 +915,7 @@ export class PSAgent {
|
|
|
874
915
|
}
|
|
875
916
|
// Function to get the host IP address
|
|
876
917
|
getHostIPAddress() {
|
|
877
|
-
const interfaces =
|
|
918
|
+
const interfaces = node_os_1.default.networkInterfaces();
|
|
878
919
|
for (const interfaceName in interfaces) {
|
|
879
920
|
for (const interfaceInfo of interfaces[interfaceName] || []) {
|
|
880
921
|
if (interfaceInfo.family === 'IPv4' && !interfaceInfo.internal) {
|
|
@@ -892,16 +933,15 @@ export class PSAgent {
|
|
|
892
933
|
return this.config.port || 41241;
|
|
893
934
|
}
|
|
894
935
|
/**
|
|
895
|
-
*
|
|
936
|
+
* get A2A express server app
|
|
896
937
|
* @param taskStore Optional TaskStore, defaults to InMemoryTaskStore
|
|
897
938
|
* @returns A2A Express app
|
|
898
939
|
*/
|
|
899
|
-
|
|
940
|
+
getA2AServer(taskStore = new server_1.InMemoryTaskStore()) {
|
|
900
941
|
// Set up the server.
|
|
901
|
-
const
|
|
902
|
-
const
|
|
903
|
-
const
|
|
904
|
-
const expressApp = appBuilder.setupRoutes(express());
|
|
942
|
+
const requestHandler = new server_1.DefaultRequestHandler(this.getAgentCard(), taskStore, this);
|
|
943
|
+
const appBuilder = new express_1.A2AExpressApp(requestHandler);
|
|
944
|
+
const expressApp = appBuilder.setupRoutes((0, express_2.default)());
|
|
905
945
|
return { app: expressApp, port: this.getPort() };
|
|
906
946
|
}
|
|
907
947
|
getAgentCard() {
|
|
@@ -950,18 +990,18 @@ export class PSAgent {
|
|
|
950
990
|
};
|
|
951
991
|
}
|
|
952
992
|
static FromConfigFile(config_path) {
|
|
953
|
-
if (!
|
|
993
|
+
if (!node_fs_1.default.existsSync(config_path)) {
|
|
954
994
|
throw new Error(`Config file ${config_path} does not exist`);
|
|
955
995
|
}
|
|
956
|
-
const ext =
|
|
996
|
+
const ext = node_path_1.default.extname(config_path).toLowerCase();
|
|
957
997
|
let configData;
|
|
958
998
|
if (ext === '.json') {
|
|
959
|
-
const fileContent =
|
|
999
|
+
const fileContent = node_fs_1.default.readFileSync(config_path, 'utf-8');
|
|
960
1000
|
configData = JSON.parse(fileContent);
|
|
961
1001
|
}
|
|
962
1002
|
else if (ext === '.yaml' || ext === '.yml') {
|
|
963
|
-
const fileContent =
|
|
964
|
-
configData =
|
|
1003
|
+
const fileContent = node_fs_1.default.readFileSync(config_path, 'utf-8');
|
|
1004
|
+
configData = yaml_1.default.parse(fileContent);
|
|
965
1005
|
}
|
|
966
1006
|
else {
|
|
967
1007
|
throw new Error('Unsupported config file format. Use JSON or YAML.');
|
|
@@ -975,13 +1015,13 @@ export class PSAgent {
|
|
|
975
1015
|
}
|
|
976
1016
|
// Convert tools and tasks if present
|
|
977
1017
|
if (configData.tools && Array.isArray(configData.tools)) {
|
|
978
|
-
configData.tools = configData.tools.map((toolConfig) => new PSAgentTool(toolConfig));
|
|
1018
|
+
configData.tools = configData.tools.map((toolConfig) => new PSAgentTool_1.PSAgentTool(toolConfig));
|
|
979
1019
|
}
|
|
980
1020
|
else {
|
|
981
1021
|
configData.tools = [];
|
|
982
1022
|
}
|
|
983
1023
|
if (configData.tasks && Array.isArray(configData.tasks)) {
|
|
984
|
-
configData.tasks = configData.tasks.map((taskConfig) => new PSAgentTask(taskConfig.name, taskConfig.description));
|
|
1024
|
+
configData.tasks = configData.tasks.map((taskConfig) => new PSAgentTask_1.PSAgentTask(taskConfig.name, taskConfig.description));
|
|
985
1025
|
}
|
|
986
1026
|
else {
|
|
987
1027
|
configData.tasks = [];
|
|
@@ -989,4 +1029,5 @@ export class PSAgent {
|
|
|
989
1029
|
return new PSAgent(configData);
|
|
990
1030
|
}
|
|
991
1031
|
}
|
|
992
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvUFNBZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDLENBQUMsNEJBQTRCO0FBQ2pFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzVDLE9BQU8sRUFJTCxxQkFBcUIsRUFFckIsaUJBQWlCLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekIsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLHVFQUF1RTtBQUN2RSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRW5ELE1BQU0sQ0FBQyxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDcEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFD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
|
|
1032
|
+
exports.PSAgent = PSAgent;
|
|
1033
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvUFNBZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFvQ0Esc0JBRUM7QUF0Q0QsdURBQXVEO0FBQ3ZELHNEQUF5QjtBQUN6QixzREFBeUI7QUFDekIsMERBQTZCO0FBUTdCLCtDQU80QjtBQUM1Qix3REFBMkQ7QUFDM0Qsc0RBQThCO0FBQzlCLDhEQUFxQztBQUNyQywrQkFBb0MsQ0FBQyw0QkFBNEI7QUFDakUsZ0RBQXdCO0FBQ3hCLCtCQUEyQjtBQUszQiwrQ0FBNEM7QUFDNUMsK0NBQWdFO0FBQ2hFLDJEQUF3RDtBQUV4RCx1RUFBdUU7QUFDdkUsTUFBTSxLQUFLLEdBQUcsSUFBQSxxQkFBVSxFQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDcEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENHO0FBQ0gsTUFBYSxPQUFPO0lBQ2xCLE1BQU0sQ0FBZ0I7SUFDZCxLQUFLLEdBQWdCLEVBQUUsQ0FBQztJQUN4QixLQUFLLEdBQWdCLEVBQUUsQ0FBQztJQUN4QixPQUFPLENBQVU7SUFDakIsYUFBYSxDQUFVO0lBQ2QsR0FBRyxDQUFpQjtJQUU3QixjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUVwQyxVQUFVLEdBQUcsS0FBSyxFQUNuQixNQUFjLEVBRUQsRUFBRTtRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxpRUFBaUU7SUFDckUsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsWUFBWSxN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
|