psadk 1.1.10 → 1.1.12

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.
@@ -10,6 +10,14 @@ export interface PSAgentConfig {
10
10
  additional_properties?: Record<string, any>;
11
11
  examples?: string[];
12
12
  model?: string;
13
+ llm_config?: {
14
+ max_completion_tokens?: number;
15
+ max_specific_tool_calls?: number;
16
+ reasoning_effort?: "minimal" | "low" | "medium" | "high";
17
+ temperature?: number;
18
+ top_p?: number;
19
+ verbosity?: 'low' | 'medium' | 'high';
20
+ } & Record<string, any>;
13
21
  input_schema?: z.core.JSONSchema.BaseSchema;
14
22
  output_schema?: z.core.JSONSchema.BaseSchema;
15
23
  show_plan?: boolean;
@@ -2,7 +2,6 @@ export type AgentLoggerType = 'debug' | 'info' | 'error' | 'warn' | 'done';
2
2
  export declare class PSAgentLogger {
3
3
  private logFn;
4
4
  private readonly logFilePath;
5
- private lastTimestamp;
6
5
  private taskId?;
7
6
  private task?;
8
7
  constructor(options?: {
@@ -12,7 +12,6 @@ let id = node_perf_hooks_1.performance.now();
12
12
  class PSAgentLogger {
13
13
  constructor(options) {
14
14
  this.logFn = (0, debuglogger_1.default)('PSAgent:');
15
- this.lastTimestamp = Date.now();
16
15
  if (options === null || options === void 0 ? void 0 : options.prefix) {
17
16
  this.logFn = (0, debuglogger_1.default)(options.prefix);
18
17
  }
@@ -22,16 +21,26 @@ class PSAgentLogger {
22
21
  }
23
22
  log(type, message, ...optionalParams) {
24
23
  const now = Date.now();
25
- const duration = now - this.lastTimestamp;
26
- this.lastTimestamp = duration < 1 ? this.lastTimestamp + 1 : this.lastTimestamp;
27
24
  if (this.logFilePath) {
28
- node_fs_1.default.appendFile(this.logFilePath, `data: ${JSON.stringify({ id: id++, ts: type === 'todo' ? 0 : this.lastTimestamp, type, taskId: this.taskId, task: this.task, message })}\n\n`, { encoding: 'utf-8' }, () => { });
25
+ node_fs_1.default.appendFile(this.logFilePath, `data: ${JSON.stringify({
26
+ id: id++,
27
+ ts: type === 'todo' ? 0 : now,
28
+ type,
29
+ taskId: this.taskId,
30
+ task: this.task,
31
+ message,
32
+ params: Object.assign({}, optionalParams),
33
+ })}\n\n`, { encoding: 'utf-8' }, () => { });
29
34
  }
30
35
  switch (type) {
31
- case 'debug': return this.logFn.debug(message, ...optionalParams);
32
- case 'done': return this.logFn.done(`${message} (${duration}ms)`, ...optionalParams);
33
- case 'warn': return this.logFn.warn(`${message}`, ...optionalParams);
34
- case 'error': return this.logFn.error(`${message}`, ...optionalParams);
36
+ case 'debug':
37
+ return this.logFn.debug(message, ...optionalParams);
38
+ case 'done':
39
+ return this.logFn.done(`${message}`, ...optionalParams);
40
+ case 'warn':
41
+ return this.logFn.warn(`${message}`, ...optionalParams);
42
+ case 'error':
43
+ return this.logFn.error(`${message}`, ...optionalParams);
35
44
  default:
36
45
  this.logFn.info(`[${type}] ${message}`, ...optionalParams);
37
46
  }
@@ -53,4 +62,4 @@ class PSAgentLogger {
53
62
  }
54
63
  }
55
64
  exports.PSAgentLogger = PSAgentLogger;
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudExvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvUFNBZ2VudExvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsc0RBQXlCO0FBQ3pCLHFEQUE4QztBQUU5QyxzRUFBOEM7QUFJOUMsSUFBSSxFQUFFLEdBQUMsNkJBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN6QixNQUFhLGFBQWE7SUFNeEIsWUFBWSxPQUErRTtRQUxuRixVQUFLLEdBQUcsSUFBQSxxQkFBVyxFQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhDLGtCQUFhLEdBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBSS9CLElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBQSxxQkFBVyxFQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBVyxFQUFFLEdBQUcsY0FBb0I7UUFDcEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDaEYsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsaUJBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBRyxNQUFNLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFDLEdBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hNLENBQUM7UUFFRCxRQUFPLElBQUksRUFBRSxDQUFDO1lBQ1osS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1lBQ2xFLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sS0FBSyxRQUFRLEtBQUssRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1lBQ3JGLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7WUFDckUsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztZQUN2RTtnQkFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQWUsRUFBRSxHQUFHLGNBQW9CO1FBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDTSxJQUFJLENBQUMsT0FBZSxFQUFFLEdBQUcsY0FBb0I7UUFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNNLEtBQUssQ0FBQyxPQUFlLEVBQUUsR0FBRyxjQUFvQjtRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ00sSUFBSSxDQUFDLE9BQWUsRUFBRSxHQUFHLGNBQW9CO1FBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDTSxJQUFJLENBQUMsVUFBa0IsRUFBRSxFQUFFLEdBQUcsY0FBb0I7UUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBaERELHNDQWdEQyJ9
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudExvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvUFNBZ2VudExvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsc0RBQXlCO0FBQ3pCLHFEQUE4QztBQUU5QyxzRUFBOEM7QUFJOUMsSUFBSSxFQUFFLEdBQUcsNkJBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMzQixNQUFhLGFBQWE7SUFLeEIsWUFBWSxPQUtYO1FBVE8sVUFBSyxHQUFHLElBQUEscUJBQVcsRUFBQyxVQUFVLENBQUMsQ0FBQztRQVV0QyxJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUEscUJBQVcsRUFBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWSxFQUFFLE9BQVksRUFBRSxHQUFHLGNBQXFCO1FBQ3RELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixpQkFBRSxDQUFDLFVBQVUsQ0FDWCxJQUFJLENBQUMsV0FBVyxFQUNoQixTQUFTLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3RCLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztnQkFDN0IsSUFBSTtnQkFDSixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixPQUFPO2dCQUNQLE1BQU0sb0JBQU8sY0FBYyxDQUFFO2FBQzlCLENBQUMsTUFBTSxFQUNSLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUNyQixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQ1QsQ0FBQztRQUNKLENBQUM7UUFFRCxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7WUFDdEQsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1lBQzFELEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztZQUMxRCxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7WUFDM0Q7Z0JBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFlLEVBQUUsR0FBRyxjQUFxQjtRQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ00sSUFBSSxDQUFDLE9BQWUsRUFBRSxHQUFHLGNBQXFCO1FBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDTSxLQUFLLENBQUMsT0FBZSxFQUFFLEdBQUcsY0FBcUI7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNNLElBQUksQ0FBQyxPQUFlLEVBQUUsR0FBRyxjQUFxQjtRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ00sSUFBSSxDQUFDLFVBQWtCLEVBQUUsRUFBRSxHQUFHLGNBQXFCO1FBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQW5FRCxzQ0FtRUMifQ==
@@ -0,0 +1,10 @@
1
+ import { PSAgentLogger } from '../PSAgentLogger';
2
+ import { PSAgentTool } from '../PSAgentTool';
3
+ export declare class PSClarifyTool extends PSAgentTool {
4
+ static readonly toolName = "clarify_tool";
5
+ private answer;
6
+ constructor(options: {
7
+ answer: (question: string, context: string) => Promise<string>;
8
+ });
9
+ run(input: Record<string, any>, log?: PSAgentLogger): Promise<Record<string, any>>;
10
+ }
@@ -0,0 +1,74 @@
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.PSClarifyTool = void 0;
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
8
+ const v4_1 = require("zod/v4");
9
+ const PSAgentTool_1 = require("../PSAgentTool");
10
+ const debuglogger_1 = __importDefault(require("../utils/debuglogger"));
11
+ const dlog = (0, debuglogger_1.default)('PSAgent:ClarifyTool');
12
+ class PSClarifyTool extends PSAgentTool_1.PSAgentTool {
13
+ constructor(options) {
14
+ super({
15
+ name: PSClarifyTool.toolName,
16
+ description: 'Clarify with user on any question that the AI Assistant has.This tool is used to ask user for more information before proceeding further.',
17
+ type: 'API',
18
+ local_execution: true,
19
+ hitl: true,
20
+ inputschema: {
21
+ url: `http://localhost/${PSClarifyTool.toolName}`,
22
+ method: 'POST',
23
+ requestBody: v4_1.z.toJSONSchema(v4_1.z
24
+ .object({
25
+ question: v4_1.z.string().meta({
26
+ title: 'question',
27
+ description: 'The question that should be asked to the user.',
28
+ }),
29
+ question_context: v4_1.z.string().meta({
30
+ title: 'question_context',
31
+ description: 'Detailed context that should be presented to user, so that the user can answer the question with right details.',
32
+ }),
33
+ })
34
+ .meta({
35
+ title: `${PSClarifyTool.toolName}_request_body`,
36
+ description: `The request body parameters for the ${PSClarifyTool.toolName} tool.`,
37
+ }), { io: 'input' }),
38
+ },
39
+ });
40
+ this.answer = options.answer;
41
+ }
42
+ run(input, log) {
43
+ if (!input.path || typeof input.path !== 'string') {
44
+ throw new Error('Invalid file path provided.');
45
+ }
46
+ const logger = log || dlog;
47
+ return new Promise((resolve, reject) => {
48
+ const question = input.question;
49
+ const question_context = input.content;
50
+ // if (!filePath.startsWith(run.srcDir))
51
+ // filePath = path.join(run.srcDir, lastevent.toolInput.request_body.path);
52
+ try {
53
+ logger.info(`❓ Agent need user input for question: ${question}`);
54
+ const response = this.answer(question, question_context);
55
+ // logger.info(`> Wrote ${content.length} bytes to file.`);
56
+ return resolve({
57
+ status: 'success',
58
+ answer: response,
59
+ });
60
+ }
61
+ catch (error) {
62
+ if (error instanceof Error) {
63
+ reject(new Error(`Failed to write file at path: ${input.path}. Error: ${error.message}`));
64
+ }
65
+ else {
66
+ reject(new Error(`Failed to write file at path: ${input.path}. Unknown error.`));
67
+ }
68
+ }
69
+ });
70
+ }
71
+ }
72
+ exports.PSClarifyTool = PSClarifyTool;
73
+ PSClarifyTool.toolName = 'clarify_tool';
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNDbGFyaWZ5VG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdG9vbHMvUFNDbGFyaWZ5VG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsK0JBQTJCO0FBRzNCLGdEQUE2QztBQUM3Qyx1RUFBK0M7QUFFL0MsTUFBTSxJQUFJLEdBQUcsSUFBQSxxQkFBVyxFQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDaEQsTUFBYSxhQUFjLFNBQVEseUJBQVc7SUFHNUMsWUFBWSxPQUVYO1FBQ0MsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUFFLGFBQWEsQ0FBQyxRQUFRO1lBQzVCLFdBQVcsRUFDVCwySUFBMkk7WUFDN0ksSUFBSSxFQUFFLEtBQUs7WUFDWCxlQUFlLEVBQUUsSUFBSTtZQUNyQixJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRTtnQkFDWCxHQUFHLEVBQUUsb0JBQW9CLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pELE1BQU0sRUFBRSxNQUFNO2dCQUNkLFdBQVcsRUFBRSxNQUFDLENBQUMsWUFBWSxDQUN6QixNQUFDO3FCQUNFLE1BQU0sQ0FBQztvQkFDTixRQUFRLEVBQUUsTUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQzt3QkFDeEIsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLFdBQVcsRUFBRSxnREFBZ0Q7cUJBQzlELENBQUM7b0JBQ0YsZ0JBQWdCLEVBQUUsTUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQzt3QkFDaEMsS0FBSyxFQUFFLGtCQUFrQjt3QkFDekIsV0FBVyxFQUNULGlIQUFpSDtxQkFDcEgsQ0FBQztpQkFDSCxDQUFDO3FCQUNELElBQUksQ0FBQztvQkFDSixLQUFLLEVBQUUsR0FBRyxhQUFhLENBQUMsUUFBUSxlQUFlO29CQUMvQyxXQUFXLEVBQUUsdUNBQXVDLGFBQWEsQ0FBQyxRQUFRLFFBQVE7aUJBQ25GLENBQUMsRUFDSixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FDaEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBQ00sR0FBRyxDQUNSLEtBQTBCLEVBQzFCLEdBQW1CO1FBRW5CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN2Qyx3Q0FBd0M7WUFDeEMsNEVBQTRFO1lBQzVFLElBQUksQ0FBQztnQkFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN6RCwyREFBMkQ7Z0JBQzNELE9BQU8sT0FBTyxDQUFDO29CQUNiLE1BQU0sRUFBRSxTQUFTO29CQUNqQixNQUFNLEVBQUUsUUFBUTtpQkFDakIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7b0JBQzNCLE1BQU0sQ0FDSixJQUFJLEtBQUssQ0FDUCxpQ0FBaUMsS0FBSyxDQUFDLElBQUksWUFBWSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3ZFLENBQ0YsQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUNKLElBQUksS0FBSyxDQUNQLGlDQUFpQyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsQ0FDOUQsQ0FDRixDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTVFSCxzQ0E2RUM7QUE1RXdCLHNCQUFRLEdBQUcsY0FBYyxDQUFDIn0=
@@ -1,5 +1,5 @@
1
- import { PSAgentLogger } from "../PSAgentLogger";
2
- import { PSAgentTool } from "../PSAgentTool";
1
+ import { PSAgentLogger } from '../PSAgentLogger';
2
+ import { PSAgentTool } from '../PSAgentTool';
3
3
  export declare class PSWriteFileTool extends PSAgentTool {
4
4
  static readonly toolName = "write_file";
5
5
  private paths;
@@ -11,39 +11,41 @@ const v4_1 = require("zod/v4");
11
11
  const PSAgentTool_1 = require("../PSAgentTool");
12
12
  const debuglogger_1 = __importDefault(require("../utils/debuglogger"));
13
13
  const helpers_1 = require("../utils/helpers");
14
- const dlog = (0, debuglogger_1.default)('PSAgent:ReadFileTool');
14
+ const dlog = (0, debuglogger_1.default)('PSAgent:WriteFileTool');
15
15
  class PSWriteFileTool extends PSAgentTool_1.PSAgentTool {
16
16
  constructor(options) {
17
17
  super({
18
18
  name: PSWriteFileTool.toolName,
19
19
  description: "Writes content to a file in repository identified by 'path'.",
20
- type: "API",
20
+ type: 'API',
21
21
  local_execution: true,
22
22
  hitl: true,
23
23
  inputschema: {
24
24
  url: `http://localhost/${PSWriteFileTool.toolName}`,
25
- method: "POST",
26
- requestBody: v4_1.z.toJSONSchema(v4_1.z.object({
25
+ method: 'POST',
26
+ requestBody: v4_1.z.toJSONSchema(v4_1.z
27
+ .object({
27
28
  path: v4_1.z.string().meta({
28
- title: "File_Path",
29
- description: "The path of the file to be write. This should be a valid file path in the repository."
29
+ title: 'File_Path',
30
+ description: 'The path of the file to be write. This should be a valid file path in the repository.',
30
31
  }),
31
32
  content: v4_1.z.string().meta({
32
- title: "File_Content",
33
- description: "The content to be written to the file. This should be a valid string content."
33
+ title: 'File_Content',
34
+ description: 'The content to be written to the file. This should be a valid string content.',
34
35
  }),
35
- }).meta({
36
+ })
37
+ .meta({
36
38
  title: `${PSWriteFileTool.toolName}_request_body`,
37
39
  description: `The request body parameters for the ${PSWriteFileTool.toolName} tool.`,
38
- }), { "io": "input" }),
40
+ }), { io: 'input' }),
39
41
  },
40
42
  });
41
43
  this.paths = [];
42
44
  this.paths = options.paths || [];
43
45
  }
44
46
  run(input, log) {
45
- if (!input.path || typeof input.path !== "string") {
46
- throw new Error("Invalid file path provided.");
47
+ if (!input.path || typeof input.path !== 'string') {
48
+ throw new Error('Invalid file path provided.');
47
49
  }
48
50
  const logger = log || dlog;
49
51
  return new Promise((resolve, reject) => {
@@ -57,7 +59,7 @@ class PSWriteFileTool extends PSAgentTool_1.PSAgentTool {
57
59
  fs_1.default.writeFileSync(filePath, (0, helpers_1.unEscapeHTML)(content), 'utf-8');
58
60
  // logger.info(`> Wrote ${content.length} bytes to file.`);
59
61
  return resolve({
60
- status: 'success'
62
+ status: 'success',
61
63
  });
62
64
  }
63
65
  catch (error) {
@@ -72,5 +74,5 @@ class PSWriteFileTool extends PSAgentTool_1.PSAgentTool {
72
74
  }
73
75
  }
74
76
  exports.PSWriteFileTool = PSWriteFileTool;
75
- PSWriteFileTool.toolName = "write_file";
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNXcml0ZUZpbGVUb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90b29scy9QU1dyaXRlRmlsZVRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdURBQXVEO0FBQ3ZELDRDQUFvQjtBQUNwQixnREFBd0I7QUFFeEIsK0JBQTJCO0FBRzNCLGdEQUE2QztBQUM3Qyx1RUFBK0M7QUFDL0MsOENBQWdFO0FBRWhFLE1BQU0sSUFBSSxHQUFHLElBQUEscUJBQVcsRUFBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2pELE1BQWEsZUFBZ0IsU0FBUSx5QkFBVztJQUcvQyxZQUFZLE9BRVg7UUFDQSxLQUFLLENBQUM7WUFDTCxJQUFJLEVBQUUsZUFBZSxDQUFDLFFBQVE7WUFDOUIsV0FBVyxFQUFFLDhEQUE4RDtZQUMzRSxJQUFJLEVBQUUsS0FBSztZQUNYLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFO2dCQUNaLEdBQUcsRUFBRSxvQkFBb0IsZUFBZSxDQUFDLFFBQVEsRUFBRTtnQkFDbkQsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsV0FBVyxFQUFFLE1BQUMsQ0FBQyxZQUFZLENBQUMsTUFBQyxDQUFDLE1BQU0sQ0FBQztvQkFDcEMsSUFBSSxFQUFFLE1BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7d0JBQ3JCLEtBQUssRUFBRSxXQUFXO3dCQUNsQixXQUFXLEVBQUUsdUZBQXVGO3FCQUNwRyxDQUFDO29CQUNGLE9BQU8sRUFBRSxNQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO3dCQUN4QixLQUFLLEVBQUUsY0FBYzt3QkFDckIsV0FBVyxFQUFFLCtFQUErRTtxQkFDNUYsQ0FBQztpQkFDRixDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNQLEtBQUssRUFBRSxHQUFHLGVBQWUsQ0FBQyxRQUFRLGVBQWU7b0JBQ2pELFdBQVcsRUFBRSx1Q0FBdUMsZUFBZSxDQUFDLFFBQVEsUUFBUTtpQkFDcEYsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQ3RCO1NBQ0QsQ0FBQyxDQUFDO1FBM0JJLFVBQUssR0FBYSxFQUFFLENBQUM7UUE0QjVCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUNNLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEdBQW1CO1FBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUM5Qix3Q0FBd0M7WUFDeEMsNEVBQTRFO1lBQzVFLElBQUksQ0FBQztnQkFDSixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBQSx3QkFBYyxFQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztnQkFDdEYsWUFBRSxDQUFDLFNBQVMsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzFELFlBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUEsc0JBQVksRUFBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdkQsMkRBQTJEO2dCQUMvRCxPQUFPLE9BQU8sQ0FBQztvQkFDZCxNQUFNLEVBQUUsU0FBUztpQkFDakIsQ0FBQyxDQUFDO1lBQ0osQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUM1QixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsaUNBQWlDLEtBQUssQ0FBQyxJQUFJLFlBQVksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0YsQ0FBQztxQkFBTSxDQUFDO29CQUNQLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2dCQUNsRixDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7QUExREYsMENBMkRDO0FBMUR1Qix3QkFBUSxHQUFHLFlBQVksQUFBZixDQUFnQiJ9
77
+ PSWriteFileTool.toolName = 'write_file';
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNXcml0ZUZpbGVUb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90b29scy9QU1dyaXRlRmlsZVRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdURBQXVEO0FBQ3ZELDRDQUFvQjtBQUNwQixnREFBd0I7QUFFeEIsK0JBQTJCO0FBRzNCLGdEQUE2QztBQUM3Qyx1RUFBK0M7QUFDL0MsOENBQWdFO0FBRWhFLE1BQU0sSUFBSSxHQUFHLElBQUEscUJBQVcsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ2xELE1BQWEsZUFBZ0IsU0FBUSx5QkFBVztJQUc5QyxZQUFZLE9BQTZCO1FBQ3ZDLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxlQUFlLENBQUMsUUFBUTtZQUM5QixXQUFXLEVBQ1QsOERBQThEO1lBQ2hFLElBQUksRUFBRSxLQUFLO1lBQ1gsZUFBZSxFQUFFLElBQUk7WUFDckIsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxFQUFFLG9CQUFvQixlQUFlLENBQUMsUUFBUSxFQUFFO2dCQUNuRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxXQUFXLEVBQUUsTUFBQyxDQUFDLFlBQVksQ0FDekIsTUFBQztxQkFDRSxNQUFNLENBQUM7b0JBQ04sSUFBSSxFQUFFLE1BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7d0JBQ3BCLEtBQUssRUFBRSxXQUFXO3dCQUNsQixXQUFXLEVBQ1QsdUZBQXVGO3FCQUMxRixDQUFDO29CQUNGLE9BQU8sRUFBRSxNQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO3dCQUN2QixLQUFLLEVBQUUsY0FBYzt3QkFDckIsV0FBVyxFQUNULCtFQUErRTtxQkFDbEYsQ0FBQztpQkFDSCxDQUFDO3FCQUNELElBQUksQ0FBQztvQkFDSixLQUFLLEVBQUUsR0FBRyxlQUFlLENBQUMsUUFBUSxlQUFlO29CQUNqRCxXQUFXLEVBQUUsdUNBQXVDLGVBQWUsQ0FBQyxRQUFRLFFBQVE7aUJBQ3JGLENBQUMsRUFDSixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FDaEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQWpDRyxVQUFLLEdBQWEsRUFBRSxDQUFDO1FBa0MzQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFDTSxHQUFHLENBQ1IsS0FBMEIsRUFDMUIsR0FBbUI7UUFFbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQztRQUMzQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQzlCLHdDQUF3QztZQUN4Qyw0RUFBNEU7WUFDNUUsSUFBSSxDQUFDO2dCQUNILE1BQU0sQ0FBQyxJQUFJLENBQ1QsY0FBYyxJQUFBLHdCQUFjLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FDekUsQ0FBQztnQkFDRixZQUFFLENBQUMsU0FBUyxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUQsWUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBQSxzQkFBWSxFQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUMzRCwyREFBMkQ7Z0JBQzNELE9BQU8sT0FBTyxDQUFDO29CQUNiLE1BQU0sRUFBRSxTQUFTO2lCQUNsQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxDQUNKLElBQUksS0FBSyxDQUNQLGlDQUFpQyxLQUFLLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDdkUsQ0FDRixDQUFDO2dCQUNKLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQ0osSUFBSSxLQUFLLENBQ1AsaUNBQWlDLEtBQUssQ0FBQyxJQUFJLGtCQUFrQixDQUM5RCxDQUNGLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBN0VILDBDQThFQztBQTdFd0Isd0JBQVEsR0FBRyxZQUFZLEFBQWYsQ0FBZ0IifQ==
@@ -1,11 +1,11 @@
1
- import type { AgentCard } from "@a2a-js/sdk";
2
- import { AgentExecutor, ExecutionEventBus, RequestContext, TaskStore } from "@a2a-js/sdk/server";
3
- import express from "express";
4
- import { z } from "zod/v4";
5
- import { PSAgentConfig } from "./PSAgentConfig";
6
- import { PSAgentLogger } from "./PSAgentLogger";
7
- import { PSAgentTask } from "./PSAgentTask";
8
- import { IPSAgentToolResult, PSAgentTool } from "./PSAgentTool";
1
+ import type { AgentCard } from '@a2a-js/sdk';
2
+ import { AgentExecutor, ExecutionEventBus, RequestContext, TaskStore } from '@a2a-js/sdk/server';
3
+ import express from 'express';
4
+ import { z } from 'zod/v4';
5
+ import { PSAgentConfig } from './PSAgentConfig';
6
+ import { PSAgentLogger } from './PSAgentLogger';
7
+ import { PSAgentTask } from './PSAgentTask';
8
+ import { IPSAgentToolResult, PSAgentTool } from './PSAgentTool';
9
9
  export declare function sleep(ms: number): Promise<void>;
10
10
  /**
11
11
  * PSAgent class to manage AI agents with tools and tasks