psadk 1.1.11 → 1.1.13

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.
@@ -88,7 +88,7 @@ class PSAgent {
88
88
  * @returns Agent class from config or default "LlmAgent"
89
89
  */
90
90
  get AgentClass() {
91
- return this.config.agent_class || "LlmAgent";
91
+ return this.config.agent_class || 'LlmAgent';
92
92
  }
93
93
  /**
94
94
  * Get the Name of the Agent
@@ -153,7 +153,7 @@ class PSAgent {
153
153
  * @returns Array of PSAgentTool instances
154
154
  */
155
155
  get Tools() {
156
- const mergedTools = [...this.config.tools || [], ...this.tools];
156
+ const mergedTools = [...(this.config.tools || []), ...this.tools];
157
157
  if (this.config.sub_agents && this.config.sub_agents.length > 0) {
158
158
  const subagents = [];
159
159
  // add a PSSubAgentTool for each sub_agent in config
@@ -170,7 +170,7 @@ class PSAgent {
170
170
  * @returns Array of PSAgentTask instances
171
171
  */
172
172
  get Tasks() {
173
- return [...this.config.tasks || [], ...this.tasks];
173
+ return [...(this.config.tasks || []), ...this.tasks];
174
174
  }
175
175
  /**
176
176
  * Get the Agent ID after starting the agent
@@ -212,11 +212,11 @@ class PSAgent {
212
212
  if (!this.tools) {
213
213
  this.tools = [];
214
214
  }
215
- let toolIndex = ((_a = this.config.tools) === null || _a === void 0 ? void 0 : _a.findIndex(t => t.Name === tool.Name)) || -1;
215
+ let toolIndex = ((_a = this.config.tools) === null || _a === void 0 ? void 0 : _a.findIndex((t) => t.Name === tool.Name)) || -1;
216
216
  if (toolIndex !== -1) {
217
217
  throw new Error(`Tool with name ${tool.Name} already exists in config`);
218
218
  }
219
- toolIndex = this.tools.findIndex(t => t.Name === tool.Name);
219
+ toolIndex = this.tools.findIndex((t) => t.Name === tool.Name);
220
220
  if (toolIndex !== -1) {
221
221
  throw new Error(`Tool with name ${tool.Name} already exists in agent`);
222
222
  }
@@ -239,9 +239,9 @@ class PSAgent {
239
239
  async getAuthHeaders() {
240
240
  const headers = {};
241
241
  headers['Authorization'] = `Bearer ${await this.getToken()}`;
242
- headers["x-client-id"] = process.env.PS_CLIENT_ID || "";
243
- headers["x-project-id"] = process.env.PS_PROJECT_ID || "";
244
- headers["x-workspace-id"] = process.env.PS_WORKSPACE_ID || "";
242
+ headers['x-client-id'] = process.env.PS_CLIENT_ID || '';
243
+ headers['x-project-id'] = process.env.PS_PROJECT_ID || '';
244
+ headers['x-workspace-id'] = process.env.PS_WORKSPACE_ID || '';
245
245
  if (this.config.additional_headers) {
246
246
  Object.assign(headers, this.config.additional_headers);
247
247
  }
@@ -262,28 +262,32 @@ class PSAgent {
262
262
  */
263
263
  async start(input, history, log) {
264
264
  log = log || this.log;
265
- const ischema = this.InputSchema ? this.InputSchema : v4_1.z.toJSONSchema(v4_1.z.object({
266
- query: v4_1.z.string().meta({
267
- title: "query",
268
- description: "The query by the user."
269
- }),
270
- // history: z.array(z.object({
271
- // role: z.enum(["user", "model"]).meta({
272
- // title: "role",
273
- // description: "Role of the message sender"
274
- // }),
275
- // content: z.string().meta({
276
- // title: "content",
277
- // description: "Content of the message"
278
- // })
279
- // })).optional().meta({
280
- // title: "history",
281
- // description: "List of the User and Assistant chat history"
282
- // })
283
- }).meta({
284
- title: "request_body",
285
- description: "The request body parameters for the agent.",
286
- }), { "io": "input" });
265
+ const ischema = this.InputSchema
266
+ ? this.InputSchema
267
+ : v4_1.z.toJSONSchema(v4_1.z
268
+ .object({
269
+ query: v4_1.z.string().meta({
270
+ title: 'query',
271
+ description: 'The query by the user.',
272
+ }),
273
+ // history: z.array(z.object({
274
+ // role: z.enum(["user", "model"]).meta({
275
+ // title: "role",
276
+ // description: "Role of the message sender"
277
+ // }),
278
+ // content: z.string().meta({
279
+ // title: "content",
280
+ // description: "Content of the message"
281
+ // })
282
+ // })).optional().meta({
283
+ // title: "history",
284
+ // description: "List of the User and Assistant chat history"
285
+ // })
286
+ })
287
+ .meta({
288
+ title: 'request_body',
289
+ description: 'The request body parameters for the agent.',
290
+ }), { io: 'input' });
287
291
  //check if the input confirms to the input schema
288
292
  // const parseResult = z.object(ischema).safeParse(input);
289
293
  // if (!parseResult.success) {
@@ -293,54 +297,58 @@ class PSAgent {
293
297
  if (ischema.properties) {
294
298
  Object.assign(ischema.properties, {
295
299
  history: {
296
- type: "array",
300
+ type: 'array',
297
301
  items: {
298
- type: "object"
302
+ type: 'object',
299
303
  },
300
- description: "List of the User and Assistant chat history",
301
- title: "Chat history"
302
- }
304
+ description: 'List of the User and Assistant chat history',
305
+ title: 'Chat history',
306
+ },
303
307
  });
304
308
  }
305
309
  // console.log("input schema:", JSON.stringify(ischema, null, 2));
306
- const output_schema = this.OutputSchema || v4_1.z.toJSONSchema(v4_1.z.object({
307
- response: v4_1.z.string().meta({
308
- title: "Response",
309
- description: "The response from the agent",
310
- }),
311
- }).meta({
312
- title: "Agent_Response",
313
- description: "The response from the agent after processing the input",
314
- }), { io: "output" });
310
+ const output_schema = this.OutputSchema ||
311
+ v4_1.z.toJSONSchema(v4_1.z
312
+ .object({
313
+ response: v4_1.z.string().meta({
314
+ title: 'Response',
315
+ description: 'The response from the agent',
316
+ }),
317
+ })
318
+ .meta({
319
+ title: 'Agent_Response',
320
+ description: 'The response from the agent after processing the input',
321
+ }), { io: 'output' });
315
322
  const body = {
316
323
  agent: {
317
324
  name: this.Name,
318
325
  description: this.Description,
319
326
  system_prompt: this.Instruction,
320
- llm: this.Model || "gpt-5",
327
+ llm: this.Model || 'gpt-5',
321
328
  input_schema: ischema,
322
329
  output_schema: output_schema,
323
330
  },
324
331
  input_params: Object.assign(input, { history: history || [] }),
325
- tasks: this.Tasks.map(task => ({
332
+ tasks: this.Tasks.map((task) => ({
326
333
  name: task.Name,
327
- description: task.Description
334
+ description: task.Description,
328
335
  })),
329
336
  tools: {
330
- new_tools: this.Tools.map(tool => ({
337
+ new_tools: this.Tools.map((tool) => ({
331
338
  name: tool.Name,
332
339
  description: tool.Description,
333
340
  type: tool.Type,
334
341
  local_execution: tool.LocalExecution,
335
342
  hitl: tool.HITL,
336
- inputs: tool.Inputs
343
+ inputs: tool.Inputs,
337
344
  })),
338
- existing_tool_ids: []
345
+ existing_tool_ids: [],
339
346
  },
340
347
  planning: {
341
348
  plan_required: this.config.show_plan || false,
342
- hitl: this.config.hitl_for_plan || false
349
+ hitl: this.config.hitl_for_plan || false,
343
350
  },
351
+ llm_config: this.config.llm_config,
344
352
  };
345
353
  console.log(`Starting agent with body: ${JSON.stringify(body, null, 2)}`);
346
354
  try {
@@ -354,7 +362,7 @@ class PSAgent {
354
362
  retries: 3,
355
363
  retryOn: function (attempt, error, response) {
356
364
  // retry on any network error, or 4xx or 5xx status codes
357
- if (error !== null || response.status > 400 && attempt < 4) {
365
+ if (error !== null || (response.status > 400 && attempt < 4)) {
358
366
  log === null || log === void 0 ? void 0 : log.warn(`retrying execute agent, attempt number ${attempt + 1}, status: ${response.status}`, error);
359
367
  return true;
360
368
  }
@@ -362,7 +370,7 @@ class PSAgent {
362
370
  },
363
371
  retryDelay: function (attempt) {
364
372
  return Math.pow(2, attempt) * 1000; // 1000, 2000, 4000
365
- }
373
+ },
366
374
  });
367
375
  if (!response.ok) {
368
376
  let errorDetails;
@@ -376,7 +384,7 @@ class PSAgent {
376
384
  throw new Error(`Unable to start agent. status: ${response.status}, details: ${JSON.stringify(errorDetails, null, 2)}`);
377
385
  }
378
386
  }
379
- const responseData = (await response.json());
387
+ const responseData = await response.json();
380
388
  this.agentId = responseData.data.agent_id;
381
389
  this.correlationId = responseData.data.correlation_id;
382
390
  log === null || log === void 0 ? void 0 : log.info(`Agent started with ID: ${this.agentId}, Correlation ID: ${this.correlationId}`);
@@ -395,20 +403,20 @@ class PSAgent {
395
403
  async resume(tooloutput) {
396
404
  const log = this.log;
397
405
  if (!this.agentId) {
398
- throw new Error("Agent ID is not set");
406
+ throw new Error('Agent ID is not set');
399
407
  }
400
408
  try {
401
409
  const response = await fetch(`${this.getBaseUrl()}/api/v1/agents/${this.agentId}/resume`, {
402
410
  method: 'POST',
403
- headers: Object.assign({ 'Content-Type': 'application/json' }, await this.getAuthHeaders()),
411
+ headers: Object.assign({ 'Content-Type': 'application/json' }, (await this.getAuthHeaders())),
404
412
  body: JSON.stringify({
405
- "correlation_id": this.CorrelationId,
406
- "tool_output_override": tooloutput,
413
+ correlation_id: this.CorrelationId,
414
+ tool_output_override: tooloutput,
407
415
  }),
408
416
  retries: 3,
409
417
  retryOn: function (attempt, error, response) {
410
418
  // retry on any network error, or 4xx or 5xx status codes
411
- if (error !== null || response.status >= 400 && attempt < 4) {
419
+ if (error !== null || (response.status >= 400 && attempt < 4)) {
412
420
  log === null || log === void 0 ? void 0 : log.warn(`retrying resume, attempt number ${attempt + 1} ${response.status} ${JSON.stringify(response)}`, error);
413
421
  return true;
414
422
  }
@@ -416,19 +424,19 @@ class PSAgent {
416
424
  },
417
425
  retryDelay: function (attempt) {
418
426
  return Math.pow(2, attempt) * 1000; // 1000, 2000, 4000
419
- }
427
+ },
420
428
  });
421
429
  if (!response.ok) {
422
- log === null || log === void 0 ? void 0 : log.error("Error resuming agent:", await response.json());
430
+ log === null || log === void 0 ? void 0 : log.error('Error resuming agent:', await response.json());
423
431
  throw new Error(`HTTP error! status: ${response.status}`);
424
432
  }
425
- const resumeData = await response.json();
433
+ const resumeData = (await response.json());
426
434
  return resumeData;
427
435
  }
428
436
  catch (error) {
429
- log === null || log === void 0 ? void 0 : log.error("Error resuming agent:", error);
430
- log === null || log === void 0 ? void 0 : log.error("Correlation ID:", this.correlationId);
431
- log === null || log === void 0 ? void 0 : log.error("Tool Output:", tooloutput);
437
+ log === null || log === void 0 ? void 0 : log.error('Error resuming agent:', error);
438
+ log === null || log === void 0 ? void 0 : log.error('Correlation ID:', this.correlationId);
439
+ log === null || log === void 0 ? void 0 : log.error('Tool Output:', tooloutput);
432
440
  throw new Error(`Failed to resume agent: ${error instanceof Error ? error.message : String(error)}`);
433
441
  }
434
442
  }
@@ -438,16 +446,16 @@ class PSAgent {
438
446
  */
439
447
  async cancel(log) {
440
448
  if (!this.AgentId) {
441
- throw new Error("Agent is not started");
449
+ throw new Error('Agent is not started');
442
450
  }
443
451
  try {
444
452
  const response = await fetch(`${this.getBaseUrl()}/api/v1/agents/${this.agentId}`, {
445
453
  method: 'DELETE',
446
- headers: Object.assign({ 'Content-Type': 'application/json' }, await this.getAuthHeaders()),
454
+ headers: Object.assign({ 'Content-Type': 'application/json' }, (await this.getAuthHeaders())),
447
455
  retries: 3,
448
456
  retryOn: function (attempt, error, response) {
449
457
  // retry on any network error, or 4xx or 5xx status codes
450
- if (error !== null || response.status >= 400 && attempt < 4) {
458
+ if (error !== null || (response.status >= 400 && attempt < 4)) {
451
459
  log === null || log === void 0 ? void 0 : log.warn(`retrying cancel agent, attempt number ${attempt + 1}`);
452
460
  return true;
453
461
  }
@@ -455,7 +463,7 @@ class PSAgent {
455
463
  },
456
464
  retryDelay: function (attempt) {
457
465
  return Math.pow(2, attempt) * 1000; // 1000, 2000, 4000
458
- }
466
+ },
459
467
  });
460
468
  if (!response.ok) {
461
469
  let errorDetails;
@@ -484,16 +492,16 @@ class PSAgent {
484
492
  */
485
493
  async getEvents() {
486
494
  if (!this.CorrelationId) {
487
- throw new Error("Correlation ID is not set");
495
+ throw new Error('Correlation ID is not set');
488
496
  }
489
497
  try {
490
498
  const response = await fetch(`${this.getBaseUrl()}/api/v1/events/events?correlationId=${this.correlationId}`, {
491
499
  method: 'GET',
492
- headers: Object.assign({ 'Content-Type': 'application/json' }, await this.getAuthHeaders()),
500
+ headers: Object.assign({ 'Content-Type': 'application/json' }, (await this.getAuthHeaders())),
493
501
  retries: 3,
494
502
  retryOn: function (attempt, error, response) {
495
503
  // retry on any network error, or 4xx or 5xx status codes
496
- if (error !== null || response.status >= 400 && attempt < 4) {
504
+ if (error !== null || (response.status >= 400 && attempt < 4)) {
497
505
  //log?.warn(`retrying getEvents, attempt number ${attempt + 1}`);
498
506
  return true;
499
507
  }
@@ -501,7 +509,7 @@ class PSAgent {
501
509
  },
502
510
  retryDelay: function (attempt) {
503
511
  return Math.pow(2, attempt) * 1000; // 1000, 2000, 4000
504
- }
512
+ },
505
513
  });
506
514
  if (!response.ok) {
507
515
  //log.error("Error fetching agent events:", await response.json());
@@ -537,7 +545,7 @@ class PSAgent {
537
545
  */
538
546
  async executeTool(toolName, input, log) {
539
547
  const results = { error: null };
540
- const tool = this.Tools.find(t => t.Name === toolName);
548
+ const tool = this.Tools.find((t) => t.Name === toolName);
541
549
  if (!tool) {
542
550
  results.error = new Error(`Tool with name ${toolName} not found`);
543
551
  }
@@ -552,10 +560,14 @@ class PSAgent {
552
560
  }
553
561
  try {
554
562
  if (results.error) {
555
- await this.resume({ error: results.error.message || results.error.toString() });
563
+ await this.resume({
564
+ error: results.error.message || results.error.toString(),
565
+ });
556
566
  }
557
567
  else {
558
- await this.resume(results.result || { output: "No result returned from tool execution" });
568
+ await this.resume(results.result || {
569
+ output: 'No result returned from tool execution',
570
+ });
559
571
  }
560
572
  }
561
573
  catch (error) {
@@ -615,7 +627,7 @@ class PSAgent {
615
627
  eventBus.publish(workingStatusUpdate);
616
628
  // 3. Prepare messages for history
617
629
  const history = (existingTask === null || existingTask === void 0 ? void 0 : existingTask.history) ? [...existingTask.history] : [];
618
- if (!history.find(m => m.messageId === userMessage.messageId)) {
630
+ if (!history.find((m) => m.messageId === userMessage.messageId)) {
619
631
  history.push(userMessage);
620
632
  }
621
633
  log === null || log === void 0 ? void 0 : log.debug(`[${this.Name}:AgentExecutor] Total messages in history: ${history.length}`);
@@ -624,7 +636,8 @@ class PSAgent {
624
636
  role: (m.role === 'agent' ? 'model' : 'user'),
625
637
  content: m.parts
626
638
  .filter((p) => p.kind === 'text' && !!p.text)
627
- .map((p) => p.text).join('\n'),
639
+ .map((p) => p.text)
640
+ .join('\n'),
628
641
  // .map((p) => ({
629
642
  // text: (p as TextPart).text,
630
643
  // })),
@@ -642,7 +655,9 @@ class PSAgent {
642
655
  kind: 'message',
643
656
  role: 'agent',
644
657
  messageId: (0, uuid_1.v4)(),
645
- parts: [{ kind: 'text', text: 'No input message found to process.' }],
658
+ parts: [
659
+ { kind: 'text', text: 'No input message found to process.' },
660
+ ],
646
661
  taskId: taskId,
647
662
  contextId: contextId,
648
663
  },
@@ -700,7 +715,12 @@ class PSAgent {
700
715
  kind: 'message',
701
716
  role: 'agent',
702
717
  messageId: (0, uuid_1.v4)(),
703
- parts: [{ kind: 'text', text: `started new agent ${this.AgentId}, correlationid: ${this.correlationId}` }],
718
+ parts: [
719
+ {
720
+ kind: 'text',
721
+ text: `started new agent ${this.AgentId}, correlationid: ${this.correlationId}`,
722
+ },
723
+ ],
704
724
  taskId: taskId,
705
725
  contextId: contextId,
706
726
  },
@@ -720,10 +740,13 @@ class PSAgent {
720
740
  log === null || log === void 0 ? void 0 : log.info(`[${this.Name}:AgentExecutor] Task ${taskId} has been cancelled.`);
721
741
  // Publish the final 'canceled' status.
722
742
  const cancelledUpdate = {
723
- kind: "status-update",
743
+ kind: 'status-update',
724
744
  taskId: taskId,
725
745
  contextId: contextId,
726
- status: { state: "canceled", timestamp: new Date().toISOString() },
746
+ status: {
747
+ state: 'canceled',
748
+ timestamp: new Date().toISOString(),
749
+ },
727
750
  final: true,
728
751
  };
729
752
  eventBus.publish(cancelledUpdate);
@@ -743,7 +766,7 @@ class PSAgent {
743
766
  if (lastevent.timestamp !== event.timestamp) {
744
767
  //log?.debug(`[${this.Name}:AgentExecutor] New event: ${event.timestamp} Last Event: ${lastevent.timestamp} `);
745
768
  lastevent = event;
746
- if (lastevent.agentStatus === "waiting") {
769
+ if (lastevent.agentStatus === 'waiting') {
747
770
  if (lastevent.tool.startsWith('mcp_')) {
748
771
  //TODO: handle mcp tools
749
772
  log === null || log === void 0 ? void 0 : log.info(`[${this.Name}:AgentExecutor] waiting for mcp tool ${lastevent.tool} to complete...`);
@@ -760,12 +783,17 @@ class PSAgent {
760
783
  kind: 'message',
761
784
  role: 'agent',
762
785
  messageId: (0, uuid_1.v4)(),
763
- parts: [{ kind: 'text', text: `invoking tool ${lastevent.tool}(${JSON.stringify(lastevent.toolInput.request_body)})...\n` }],
786
+ parts: [
787
+ {
788
+ kind: 'text',
789
+ text: `invoking tool ${lastevent.tool}(${JSON.stringify(lastevent.toolInput.request_body)})...\n`,
790
+ },
791
+ ],
764
792
  taskId: taskId,
765
793
  contextId: contextId,
766
794
  metadata: {
767
- data: lastevent.toolInput.request_body
768
- }
795
+ data: lastevent.toolInput.request_body,
796
+ },
769
797
  },
770
798
  timestamp: new Date().toISOString(),
771
799
  },
@@ -802,20 +830,21 @@ class PSAgent {
802
830
  eventBus.publish(workingStatusUpdate);
803
831
  }
804
832
  }
805
- else if (lastevent.agentStatus === "pending") {
833
+ else if (lastevent.agentStatus === 'pending') {
806
834
  //log(`\n\n#### ${lastevent.agentStatus}:\n`);
807
835
  }
808
- else if (lastevent.agentStatus === "in-progress") {
809
- if (lastevent.tool === 'generate_plan_tool' && lastevent.toolOutput) {
810
- log === null || log === void 0 ? void 0 : log.info("```log-Agent_Plan\n" + lastevent.toolOutput + "\n```");
836
+ else if (lastevent.agentStatus === 'in-progress') {
837
+ if (lastevent.tool === 'generate_plan_tool' &&
838
+ lastevent.toolOutput) {
839
+ log === null || log === void 0 ? void 0 : log.info('```log-Agent_Plan\n' + lastevent.toolOutput + '\n```');
811
840
  }
812
- else if (lastevent.message.indexOf("resume")) {
841
+ else if (lastevent.message.indexOf('resume')) {
813
842
  //log.info(`.`);
814
843
  }
815
844
  else
816
845
  log === null || log === void 0 ? void 0 : log.info(`\n\n#### ${lastevent.message}:\n`);
817
846
  }
818
- else if (lastevent.agentStatus === "completed") {
847
+ else if (lastevent.agentStatus === 'completed') {
819
848
  log === null || log === void 0 ? void 0 : log.info(`Agent Execution Completed`);
820
849
  log === null || log === void 0 ? void 0 : log.info(`---`);
821
850
  log === null || log === void 0 ? void 0 : log.done(JSON.stringify(lastevent.output, null, 2));
@@ -828,8 +857,9 @@ class PSAgent {
828
857
  }
829
858
  processedEvents++;
830
859
  }
831
- } while ((lastevent === null || lastevent === void 0 ? void 0 : lastevent.agentStatus) !== "failed" && (lastevent === null || lastevent === void 0 ? void 0 : lastevent.agentStatus) !== "completed");
832
- if ((lastevent === null || lastevent === void 0 ? void 0 : lastevent.agentStatus) === "failed") {
860
+ } while ((lastevent === null || lastevent === void 0 ? void 0 : lastevent.agentStatus) !== 'failed' &&
861
+ (lastevent === null || lastevent === void 0 ? void 0 : lastevent.agentStatus) !== 'completed');
862
+ if ((lastevent === null || lastevent === void 0 ? void 0 : lastevent.agentStatus) === 'failed') {
833
863
  const failureUpdate = {
834
864
  kind: 'status-update',
835
865
  taskId: taskId,
@@ -840,7 +870,12 @@ class PSAgent {
840
870
  kind: 'message',
841
871
  role: 'agent',
842
872
  messageId: (0, uuid_1.v4)(),
843
- parts: [{ kind: 'text', text: `Agent execution failed: ${(lastevent === null || lastevent === void 0 ? void 0 : lastevent.message) || ''}` }],
873
+ parts: [
874
+ {
875
+ kind: 'text',
876
+ text: `Agent execution failed: ${(lastevent === null || lastevent === void 0 ? void 0 : lastevent.message) || ''}`,
877
+ },
878
+ ],
844
879
  taskId: taskId,
845
880
  contextId: contextId,
846
881
  },
@@ -850,7 +885,7 @@ class PSAgent {
850
885
  };
851
886
  eventBus.publish(failureUpdate);
852
887
  }
853
- else if ((lastevent === null || lastevent === void 0 ? void 0 : lastevent.agentStatus) === "completed") {
888
+ else if ((lastevent === null || lastevent === void 0 ? void 0 : lastevent.agentStatus) === 'completed') {
854
889
  const completedUpdate = {
855
890
  kind: 'status-update',
856
891
  taskId: taskId,
@@ -888,7 +923,12 @@ class PSAgent {
888
923
  kind: 'message',
889
924
  role: 'agent',
890
925
  messageId: (0, uuid_1.v4)(),
891
- parts: [{ kind: 'text', text: `Error processing your message: ${error instanceof Error ? error.message : String(error)}` }],
926
+ parts: [
927
+ {
928
+ kind: 'text',
929
+ text: `Error processing your message: ${error instanceof Error ? error.message : String(error)}`,
930
+ },
931
+ ],
892
932
  taskId: taskId,
893
933
  contextId: contextId,
894
934
  },
@@ -940,7 +980,7 @@ class PSAgent {
940
980
  url: `http://${this.getHostIPAddress()}:${this.getPort()}/`,
941
981
  provider: {
942
982
  organization: 'PS',
943
- url: 'https://example.com/a2a-agent' // Added provider URL
983
+ url: 'https://example.com/a2a-agent', // Added provider URL
944
984
  },
945
985
  capabilities: {
946
986
  streaming: true, // The new framework supports streaming
@@ -960,17 +1000,17 @@ class PSAgent {
960
1000
  tags: ['psagent'],
961
1001
  examples: this.config.examples || [],
962
1002
  inputModes: ['text'], // Explicitly defining for skill
963
- outputModes: ['text', 'task-status'] // Explicitly defining for skill
1003
+ outputModes: ['text', 'task-status'], // Explicitly defining for skill
964
1004
  },
965
- ...this.tasks.map(task => ({
1005
+ ...this.tasks.map((task) => ({
966
1006
  id: task.Name.toLowerCase().replace(/\s+/g, '-'),
967
1007
  name: task.Name,
968
1008
  description: task.Description,
969
1009
  tags: ['psagent-task'],
970
1010
  examples: task.Examples,
971
1011
  inputModes: ['text'], // Assuming text input for tasks
972
- outputModes: ['text', 'task-status'] // Assuming text and status output for tasks
973
- }))
1012
+ outputModes: ['text', 'task-status'], // Assuming text and status output for tasks
1013
+ })),
974
1014
  ],
975
1015
  supportsAuthenticatedExtendedCard: false,
976
1016
  };
@@ -1016,4 +1056,4 @@ class PSAgent {
1016
1056
  }
1017
1057
  }
1018
1058
  exports.PSAgent = PSAgent;
1019
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvUFNBZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFvQ0Esc0JBRUM7QUF0Q0QsdURBQXVEO0FBQ3ZELHNEQUF5QjtBQUN6QixzREFBeUI7QUFDekIsMERBQTZCO0FBUTdCLCtDQU80QjtBQUM1Qix3REFBMkQ7QUFDM0Qsc0RBQThCO0FBQzlCLDhEQUFxQztBQUNyQywrQkFBb0MsQ0FBQyw0QkFBNEI7QUFDakUsZ0RBQXdCO0FBQ3hCLCtCQUEyQjtBQUszQiwrQ0FBNEM7QUFDNUMsK0NBQWdFO0FBQ2hFLDJEQUF3RDtBQUV4RCx1RUFBdUU7QUFDdkUsTUFBTSxLQUFLLEdBQUcsSUFBQSxxQkFBVSxFQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDcEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENHO0FBQ0gsTUFBYSxPQUFPO0lBa0JsQjs7O09BR0c7SUFDSCxZQUFZLE1BQTBDO1FBcEI5QyxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUN4QixVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUt4QixtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFcEMsZUFBVSxHQUFHLEtBQUssRUFDbkIsTUFBYyxFQUVELEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsaUVBQWlFO1FBQ3JFLENBQUMsQ0FBQztRQU9BLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFH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
1059
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvUFNBZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFvQ0Esc0JBRUM7QUF0Q0QsdURBQXVEO0FBQ3ZELHNEQUF5QjtBQUN6QixzREFBeUI7QUFDekIsMERBQTZCO0FBUTdCLCtDQU80QjtBQUM1Qix3REFBMkQ7QUFDM0Qsc0RBQThCO0FBQzlCLDhEQUFxQztBQUNyQywrQkFBb0MsQ0FBQyw0QkFBNEI7QUFDakUsZ0RBQXdCO0FBQ3hCLCtCQUEyQjtBQUszQiwrQ0FBNEM7QUFDNUMsK0NBQWdFO0FBQ2hFLDJEQUF3RDtBQUV4RCx1RUFBdUU7QUFDdkUsTUFBTSxLQUFLLEdBQUcsSUFBQSxxQkFBVSxFQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDcEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENHO0FBQ0gsTUFBYSxPQUFPO0lBa0JsQjs7O09BR0c7SUFDSCxZQUFZLE1BQStDO1FBcEJuRCxVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUMxQixVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUsxQixtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFcEMsZUFBVSxHQUFHLEtBQUssRUFDdkIsTUFBYyxFQUVDLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsaUVBQWlFO1FBQ25FLENBQUMsQ0FBQztRQU9BLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFH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