psadk 1.1.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/CHANGELOG.md +11 -0
- package/LICENSE +21 -0
- package/README.md +205 -0
- package/build/main/index.d.ts +6 -0
- package/build/main/index.js +23 -0
- package/build/main/lib/ILogger.d.ts +9 -0
- package/build/main/lib/ILogger.js +25 -0
- package/build/main/lib/PSAI.d.ts +29 -0
- package/build/main/lib/PSAI.js +383 -0
- package/build/main/lib/PSAgent.d.ts +215 -0
- package/build/main/lib/PSAgent.js +990 -0
- package/build/main/lib/PSAgentConfig.d.ts +23 -0
- package/build/main/lib/PSAgentConfig.js +3 -0
- package/build/main/lib/PSAgentLogger.d.ts +13 -0
- package/build/main/lib/PSAgentLogger.js +33 -0
- package/build/main/lib/PSAgentTask.d.ts +12 -0
- package/build/main/lib/PSAgentTask.js +30 -0
- package/build/main/lib/PSAgentTool.d.ts +56 -0
- package/build/main/lib/PSAgentTool.js +84 -0
- package/build/main/lib/ai.d.ts +11 -0
- package/build/main/lib/ai.js +127 -0
- package/build/main/lib/async.d.ts +20 -0
- package/build/main/lib/async.js +36 -0
- package/build/main/lib/getServiceToken.d.ts +1 -0
- package/build/main/lib/getServiceToken.js +3 -0
- package/build/main/lib/jwt.d.ts +41 -0
- package/build/main/lib/jwt.js +73 -0
- package/build/main/lib/number.d.ts +43 -0
- package/build/main/lib/number.js +56 -0
- package/build/main/lib/tools/PSAentTool.d.ts +7 -0
- package/build/main/lib/tools/PSAentTool.js +78 -0
- package/build/main/lib/tools/PSArtifactTool copy.d.ts +7 -0
- package/build/main/lib/tools/PSArtifactTool copy.js +78 -0
- package/build/main/lib/tools/PSArtifactTool.d.ts +7 -0
- package/build/main/lib/tools/PSArtifactTool.js +79 -0
- package/build/main/lib/tools/PSSubAgentTool.d.ts +20 -0
- package/build/main/lib/tools/PSSubAgentTool.js +163 -0
- package/build/module/index.d.ts +6 -0
- package/build/module/index.js +7 -0
- package/build/module/lib/PSAI.d.ts +25 -0
- package/build/module/lib/PSAI.js +314 -0
- package/build/module/lib/PSAgent.d.ts +215 -0
- package/build/module/lib/PSAgent.js +992 -0
- package/build/module/lib/async.d.ts +20 -0
- package/build/module/lib/async.js +32 -0
- package/build/module/lib/number.d.ts +43 -0
- package/build/module/lib/number.js +51 -0
- package/package.json +122 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.power = exports.double = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Multiplies a value by 2. (Also a full example of TypeDoc's functionality.)
|
|
6
|
+
*
|
|
7
|
+
* ### Example (es module)
|
|
8
|
+
* ```js
|
|
9
|
+
* import { double } from 'typescript-starter'
|
|
10
|
+
* console.log(double(4))
|
|
11
|
+
* // => 8
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* ### Example (commonjs)
|
|
15
|
+
* ```js
|
|
16
|
+
* var double = require('typescript-starter').double;
|
|
17
|
+
* console.log(double(4))
|
|
18
|
+
* // => 8
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param value - Comment describing the `value` parameter.
|
|
22
|
+
* @returns Comment describing the return type.
|
|
23
|
+
* @anotherNote Some other value.
|
|
24
|
+
*/
|
|
25
|
+
const double = (value) => {
|
|
26
|
+
return value * 2;
|
|
27
|
+
};
|
|
28
|
+
exports.double = double;
|
|
29
|
+
/**
|
|
30
|
+
* Raise the value of the first parameter to the power of the second using the
|
|
31
|
+
* es7 exponentiation operator (`**`).
|
|
32
|
+
*
|
|
33
|
+
* ### Example (es module)
|
|
34
|
+
* ```js
|
|
35
|
+
* import { power } from 'typescript-starter'
|
|
36
|
+
* console.log(power(2,3))
|
|
37
|
+
* // => 8
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* ### Example (commonjs)
|
|
41
|
+
* ```js
|
|
42
|
+
* var power = require('typescript-starter').power;
|
|
43
|
+
* console.log(power(2,3))
|
|
44
|
+
* // => 8
|
|
45
|
+
* ```
|
|
46
|
+
* @param base - the base to exponentiate
|
|
47
|
+
* @param exponent - the power to which to raise the base
|
|
48
|
+
*/
|
|
49
|
+
const power = (base, exponent) => {
|
|
50
|
+
/**
|
|
51
|
+
* This es7 exponentiation operator is transpiled by TypeScript
|
|
52
|
+
*/
|
|
53
|
+
return base ** exponent;
|
|
54
|
+
};
|
|
55
|
+
exports.power = power;
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0ksTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUN0QyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRlcsUUFBQSxNQUFNLFVBRWpCO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSSxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDdEQ7O09BRUc7SUFDSCxPQUFPLElBQUksSUFBSSxRQUFRLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBTFcsUUFBQSxLQUFLLFNBS2hCIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PSAgentTool } from "../PSAgentTool";
|
|
2
|
+
export declare class PSArtifactTool extends PSAgentTool {
|
|
3
|
+
static TOOL_NAME: string;
|
|
4
|
+
private readonly artifacts;
|
|
5
|
+
constructor(artifactsStore?: Record<string, string>);
|
|
6
|
+
run(input: Record<string, any>): Promise<Record<string, any>>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PSArtifactTool = void 0;
|
|
4
|
+
const PSAgentTool_1 = require("../PSAgentTool");
|
|
5
|
+
class PSArtifactTool extends PSAgentTool_1.PSAgentTool {
|
|
6
|
+
constructor(artifactsStore) {
|
|
7
|
+
super({
|
|
8
|
+
name: PSArtifactTool.TOOL_NAME,
|
|
9
|
+
description: `Use this ${PSArtifactTool.TOOL_NAME} tool to read or write text artifacts based on the content provided.
|
|
10
|
+
The input is a JSON object with the following properties:
|
|
11
|
+
- 'name' (string) - the name of the artifact to be created or modified,
|
|
12
|
+
- 'content' (string) - the text content to be processed, this is not required for read action,
|
|
13
|
+
- 'action' (string) - the action to perform on the content, either 'read' or 'write'.
|
|
14
|
+
The output will be a JSON object with the status and outout result of the action.`,
|
|
15
|
+
inputschema: {
|
|
16
|
+
url: `http://localhost/${PSArtifactTool.TOOL_NAME}`,
|
|
17
|
+
method: "POST",
|
|
18
|
+
title: `${PSArtifactTool.TOOL_NAME}_inputs`,
|
|
19
|
+
description: "Input for Artifact Tool",
|
|
20
|
+
requestBody: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {
|
|
23
|
+
name: {
|
|
24
|
+
type: "string",
|
|
25
|
+
title: "name",
|
|
26
|
+
description: "The name of the artifact",
|
|
27
|
+
},
|
|
28
|
+
content: {
|
|
29
|
+
type: "string",
|
|
30
|
+
title: "content",
|
|
31
|
+
description: "The content of the artifact",
|
|
32
|
+
},
|
|
33
|
+
action: {
|
|
34
|
+
type: "string",
|
|
35
|
+
title: "action",
|
|
36
|
+
description: "the action to perform on the content, either 'read' or 'write'",
|
|
37
|
+
enum: ["read", "write"],
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
required: ["name", "action"]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
this.artifacts = {};
|
|
45
|
+
if (artifactsStore) {
|
|
46
|
+
this.artifacts = artifactsStore;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async run(input) {
|
|
50
|
+
const name = input.name;
|
|
51
|
+
const action = input.action;
|
|
52
|
+
if (!name || name.trim().length === 0) {
|
|
53
|
+
throw new Error("name should not be empty");
|
|
54
|
+
}
|
|
55
|
+
const isExisting = this.artifacts[name];
|
|
56
|
+
if (action === "read") {
|
|
57
|
+
return {
|
|
58
|
+
status: "success",
|
|
59
|
+
output: this.artifacts[name],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
else if (action == "write") {
|
|
63
|
+
const content = input.content || '';
|
|
64
|
+
this.artifacts[name] = content;
|
|
65
|
+
return {
|
|
66
|
+
status: "success",
|
|
67
|
+
output: `Artifact ${name} ${isExisting ? 'modified' : 'created'} with content length ${content.length}`
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
status: "error",
|
|
72
|
+
output: `Invalid action ${input.action}, must be either 'read' or 'write'`
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.PSArtifactTool = PSArtifactTool;
|
|
77
|
+
PSArtifactTool.TOOL_NAME = "artifact_tool";
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZW50VG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdG9vbHMvUFNBZW50VG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBNkM7QUFHN0MsTUFBYSxjQUFlLFNBQVEseUJBQVc7SUFHN0MsWUFBWSxjQUF1QztRQUNqRCxLQUFLLENBQUM7WUFDSixJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDOUIsV0FBVyxFQUFFLFlBQVksY0FBYyxDQUFDLFNBQVM7Ozs7O2tGQUsyQjtZQUM1RSxXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxFQUFFLG9CQUFvQixjQUFjLENBQUMsU0FBUyxFQUFFO2dCQUNuRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxLQUFLLEVBQUUsR0FBRyxjQUFjLENBQUMsU0FBUyxTQUFTO2dCQUMzQyxXQUFXLEVBQUUseUJBQXlCO2dCQUN0QyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNWLElBQUksRUFBRTs0QkFDSixJQUFJLEVBQUUsUUFBUTs0QkFDZCxLQUFLLEVBQUUsTUFBTTs0QkFDYixXQUFXLEVBQUUsMEJBQTBCO3lCQUN4Qzt3QkFDRCxPQUFPLEVBQUU7NEJBQ1AsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsS0FBSyxFQUFFLFNBQVM7NEJBQ2hCLFdBQVcsRUFBRSw2QkFBNkI7eUJBQzNDO3dCQUNELE1BQU0sRUFBRTs0QkFDTixJQUFJLEVBQUUsUUFBUTs0QkFDZCxLQUFLLEVBQUUsUUFBUTs0QkFDZixXQUFXLEVBQUUsZ0VBQWdFOzRCQUM3RSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO3lCQUN4QjtxQkFDRjtvQkFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2lCQUM3QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBdENZLGNBQVMsR0FBMkIsRUFBRSxDQUFDO1FBdUN0RCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRWUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUEwQjtRQUNsRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN0QixPQUFPO2dCQUNMLE1BQU0sRUFBQyxTQUFTO2dCQUNoQixNQUFNLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7YUFDNUIsQ0FBQTtRQUNILENBQUM7YUFBTSxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQTtZQUM5QixPQUFPO2dCQUNMLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUsWUFBWSxJQUFJLElBQUksVUFBVSxDQUFBLENBQUMsQ0FBQSxVQUFVLENBQUEsQ0FBQyxDQUFBLFNBQVMsd0JBQXdCLE9BQU8sQ0FBQyxNQUFNLEVBQUU7YUFDcEcsQ0FBQTtRQUNILENBQUM7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUUsa0JBQWtCLEtBQUssQ0FBQyxNQUFNLG9DQUFvQztTQUMzRSxDQUFBO0lBQ0gsQ0FBQzs7QUF2RUgsd0NBd0VDO0FBdkVRLHdCQUFTLEdBQUcsZUFBZSxBQUFsQixDQUFtQiJ9
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PSAgentTool } from "../PSAgentTool";
|
|
2
|
+
export declare class PSArtifactTool extends PSAgentTool {
|
|
3
|
+
static TOOL_NAME: string;
|
|
4
|
+
private readonly artifacts;
|
|
5
|
+
constructor(artifactsStore?: Record<string, string>);
|
|
6
|
+
run(input: Record<string, any>): Promise<Record<string, any>>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PSArtifactTool = void 0;
|
|
4
|
+
const PSAgentTool_1 = require("../PSAgentTool");
|
|
5
|
+
class PSArtifactTool extends PSAgentTool_1.PSAgentTool {
|
|
6
|
+
constructor(artifactsStore) {
|
|
7
|
+
super({
|
|
8
|
+
name: PSArtifactTool.TOOL_NAME,
|
|
9
|
+
description: `Use this ${PSArtifactTool.TOOL_NAME} tool to read or write text artifacts based on the content provided.
|
|
10
|
+
The input is a JSON object with the following properties:
|
|
11
|
+
- 'name' (string) - the name of the artifact to be created or modified,
|
|
12
|
+
- 'content' (string) - the text content to be processed, this is not required for read action,
|
|
13
|
+
- 'action' (string) - the action to perform on the content, either 'read' or 'write'.
|
|
14
|
+
The output will be a JSON object with the status and outout result of the action.`,
|
|
15
|
+
inputschema: {
|
|
16
|
+
url: `http://localhost/${PSArtifactTool.TOOL_NAME}`,
|
|
17
|
+
method: "POST",
|
|
18
|
+
title: `${PSArtifactTool.TOOL_NAME}_inputs`,
|
|
19
|
+
description: "Input for Artifact Tool",
|
|
20
|
+
requestBody: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {
|
|
23
|
+
name: {
|
|
24
|
+
type: "string",
|
|
25
|
+
title: "name",
|
|
26
|
+
description: "The name of the artifact",
|
|
27
|
+
},
|
|
28
|
+
content: {
|
|
29
|
+
type: "string",
|
|
30
|
+
title: "content",
|
|
31
|
+
description: "The content of the artifact",
|
|
32
|
+
},
|
|
33
|
+
action: {
|
|
34
|
+
type: "string",
|
|
35
|
+
title: "action",
|
|
36
|
+
description: "the action to perform on the content, either 'read' or 'write'",
|
|
37
|
+
enum: ["read", "write"],
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
required: ["name", "action"]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
this.artifacts = {};
|
|
45
|
+
if (artifactsStore) {
|
|
46
|
+
this.artifacts = artifactsStore;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async run(input) {
|
|
50
|
+
const name = input.name;
|
|
51
|
+
const action = input.action;
|
|
52
|
+
if (!name || name.trim().length === 0) {
|
|
53
|
+
throw new Error("name should not be empty");
|
|
54
|
+
}
|
|
55
|
+
const isExisting = this.artifacts[name];
|
|
56
|
+
if (action === "read") {
|
|
57
|
+
return {
|
|
58
|
+
status: "success",
|
|
59
|
+
output: this.artifacts[name],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
else if (action == "write") {
|
|
63
|
+
const content = input.content || '';
|
|
64
|
+
this.artifacts[name] = content;
|
|
65
|
+
return {
|
|
66
|
+
status: "success",
|
|
67
|
+
output: `Artifact ${name} ${isExisting ? 'modified' : 'created'} with content length ${content.length}`
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
status: "error",
|
|
72
|
+
output: `Invalid action ${input.action}, must be either 'read' or 'write'`
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.PSArtifactTool = PSArtifactTool;
|
|
77
|
+
PSArtifactTool.TOOL_NAME = "artifact_tool";
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBcnRpZmFjdFRvb2wgY29weS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdG9vbHMvUFNBcnRpZmFjdFRvb2wgY29weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBNkM7QUFHN0MsTUFBYSxjQUFlLFNBQVEseUJBQVc7SUFHN0MsWUFBWSxjQUF1QztRQUNqRCxLQUFLLENBQUM7WUFDSixJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDOUIsV0FBVyxFQUFFLFlBQVksY0FBYyxDQUFDLFNBQVM7Ozs7O2tGQUsyQjtZQUM1RSxXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxFQUFFLG9CQUFvQixjQUFjLENBQUMsU0FBUyxFQUFFO2dCQUNuRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxLQUFLLEVBQUUsR0FBRyxjQUFjLENBQUMsU0FBUyxTQUFTO2dCQUMzQyxXQUFXLEVBQUUseUJBQXlCO2dCQUN0QyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNWLElBQUksRUFBRTs0QkFDSixJQUFJLEVBQUUsUUFBUTs0QkFDZCxLQUFLLEVBQUUsTUFBTTs0QkFDYixXQUFXLEVBQUUsMEJBQTBCO3lCQUN4Qzt3QkFDRCxPQUFPLEVBQUU7NEJBQ1AsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsS0FBSyxFQUFFLFNBQVM7NEJBQ2hCLFdBQVcsRUFBRSw2QkFBNkI7eUJBQzNDO3dCQUNELE1BQU0sRUFBRTs0QkFDTixJQUFJLEVBQUUsUUFBUTs0QkFDZCxLQUFLLEVBQUUsUUFBUTs0QkFDZixXQUFXLEVBQUUsZ0VBQWdFOzRCQUM3RSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO3lCQUN4QjtxQkFDRjtvQkFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2lCQUM3QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBdENZLGNBQVMsR0FBMkIsRUFBRSxDQUFDO1FBdUN0RCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRWUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUEwQjtRQUNsRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN0QixPQUFPO2dCQUNMLE1BQU0sRUFBQyxTQUFTO2dCQUNoQixNQUFNLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7YUFDNUIsQ0FBQTtRQUNILENBQUM7YUFBTSxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQTtZQUM5QixPQUFPO2dCQUNMLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUsWUFBWSxJQUFJLElBQUksVUFBVSxDQUFBLENBQUMsQ0FBQSxVQUFVLENBQUEsQ0FBQyxDQUFBLFNBQVMsd0JBQXdCLE9BQU8sQ0FBQyxNQUFNLEVBQUU7YUFDcEcsQ0FBQTtRQUNILENBQUM7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUUsa0JBQWtCLEtBQUssQ0FBQyxNQUFNLG9DQUFvQztTQUMzRSxDQUFBO0lBQ0gsQ0FBQzs7QUF2RUgsd0NBd0VDO0FBdkVRLHdCQUFTLEdBQUcsZUFBZSxBQUFsQixDQUFtQiJ9
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PSAgentTool } from "../PSAgentTool";
|
|
2
|
+
export declare class PSArtifactTool extends PSAgentTool {
|
|
3
|
+
static TOOL_NAME: string;
|
|
4
|
+
private readonly artifacts;
|
|
5
|
+
constructor(artifactsStore?: Record<string, string>);
|
|
6
|
+
run(input: Record<string, any>): Promise<Record<string, any>>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PSArtifactTool = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
+
const PSAgentTool_1 = require("../PSAgentTool");
|
|
6
|
+
class PSArtifactTool extends PSAgentTool_1.PSAgentTool {
|
|
7
|
+
constructor(artifactsStore) {
|
|
8
|
+
super({
|
|
9
|
+
name: PSArtifactTool.TOOL_NAME,
|
|
10
|
+
description: `Use this ${PSArtifactTool.TOOL_NAME} tool to read or write text artifacts based on the content provided.
|
|
11
|
+
The input is a JSON object with the following properties:
|
|
12
|
+
- 'name' (string) - the name of the artifact to be created or modified,
|
|
13
|
+
- 'content' (string) - the text content to be processed, this is not required for read action,
|
|
14
|
+
- 'action' (string) - the action to perform on the content, either 'read' or 'write'.
|
|
15
|
+
The output will be a JSON object with the status and output result of the action.`,
|
|
16
|
+
inputschema: {
|
|
17
|
+
url: `http://localhost/${PSArtifactTool.TOOL_NAME}`,
|
|
18
|
+
method: "POST",
|
|
19
|
+
//title: `${PSArtifactTool.TOOL_NAME}_inputs`,
|
|
20
|
+
//description: "Input for Artifact Tool",
|
|
21
|
+
requestBody: {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {
|
|
24
|
+
name: {
|
|
25
|
+
type: "string",
|
|
26
|
+
title: "name",
|
|
27
|
+
description: "The name of the artifact",
|
|
28
|
+
},
|
|
29
|
+
content: {
|
|
30
|
+
type: "string",
|
|
31
|
+
title: "content",
|
|
32
|
+
description: "The content of the artifact",
|
|
33
|
+
},
|
|
34
|
+
action: {
|
|
35
|
+
type: "string",
|
|
36
|
+
title: "action",
|
|
37
|
+
description: "the action to perform on the content, either 'read' or 'write'",
|
|
38
|
+
enum: ["read", "write"],
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
required: ["name", "action"]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
this.artifacts = {};
|
|
46
|
+
if (artifactsStore) {
|
|
47
|
+
this.artifacts = artifactsStore;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async run(input) {
|
|
51
|
+
const name = input.name;
|
|
52
|
+
const action = input.action;
|
|
53
|
+
if (!name || name.trim().length === 0) {
|
|
54
|
+
throw new Error("name should not be empty");
|
|
55
|
+
}
|
|
56
|
+
const isExisting = this.artifacts[name];
|
|
57
|
+
if (action === "read") {
|
|
58
|
+
return {
|
|
59
|
+
status: "success",
|
|
60
|
+
output: this.artifacts[name],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
else if (action == "write") {
|
|
64
|
+
const content = input.content || '';
|
|
65
|
+
this.artifacts[name] = content;
|
|
66
|
+
return {
|
|
67
|
+
status: "success",
|
|
68
|
+
output: `Artifact ${name} ${isExisting ? 'modified' : 'created'} with content length ${content.length}`
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
status: "error",
|
|
73
|
+
output: `Invalid action ${input.action}, must be either 'read' or 'write'`
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.PSArtifactTool = PSArtifactTool;
|
|
78
|
+
PSArtifactTool.TOOL_NAME = "artifact_tool";
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBcnRpZmFjdFRvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Rvb2xzL1BTQXJ0aWZhY3RUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUF1RDtBQUN2RCxnREFBNkM7QUFHN0MsTUFBYSxjQUFlLFNBQVEseUJBQVc7SUFHN0MsWUFBWSxjQUF1QztRQUNqRCxLQUFLLENBQUM7WUFDSixJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDOUIsV0FBVyxFQUFFLFlBQVksY0FBYyxDQUFDLFNBQVM7Ozs7O2tGQUsyQjtZQUM1RSxXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxFQUFFLG9CQUFvQixjQUFjLENBQUMsU0FBUyxFQUFFO2dCQUNuRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCw4Q0FBOEM7Z0JBQzlDLHlDQUF5QztnQkFDekMsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixJQUFJLEVBQUU7NEJBQ0osSUFBSSxFQUFFLFFBQVE7NEJBQ2QsS0FBSyxFQUFFLE1BQU07NEJBQ2IsV0FBVyxFQUFFLDBCQUEwQjt5QkFDeEM7d0JBQ0QsT0FBTyxFQUFFOzRCQUNQLElBQUksRUFBRSxRQUFROzRCQUNkLEtBQUssRUFBRSxTQUFTOzRCQUNoQixXQUFXLEVBQUUsNkJBQTZCO3lCQUMzQzt3QkFDRCxNQUFNLEVBQUU7NEJBQ04sSUFBSSxFQUFFLFFBQVE7NEJBQ2QsS0FBSyxFQUFFLFFBQVE7NEJBQ2YsV0FBVyxFQUFFLGdFQUFnRTs0QkFDN0UsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQzt5QkFDeEI7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztpQkFDN0I7YUFDRjtTQUNGLENBQUMsQ0FBQztRQXRDWSxjQUFTLEdBQTJCLEVBQUUsQ0FBQztRQXVDdEQsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVlLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBMEI7UUFDbEQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN4QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDdEIsT0FBTztnQkFDTCxNQUFNLEVBQUMsU0FBUztnQkFDaEIsTUFBTSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2FBQzVCLENBQUE7UUFDSCxDQUFDO2FBQU0sSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUE7WUFDOUIsT0FBTztnQkFDTCxNQUFNLEVBQUUsU0FBUztnQkFDakIsTUFBTSxFQUFFLFlBQVksSUFBSSxJQUFJLFVBQVUsQ0FBQSxDQUFDLENBQUEsVUFBVSxDQUFBLENBQUMsQ0FBQSxTQUFTLHdCQUF3QixPQUFPLENBQUMsTUFBTSxFQUFFO2FBQ3BHLENBQUE7UUFDSCxDQUFDO1FBRUQsT0FBTztZQUNMLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLGtCQUFrQixLQUFLLENBQUMsTUFBTSxvQ0FBb0M7U0FDM0UsQ0FBQTtJQUNILENBQUM7O0FBdkVILHdDQXdFQztBQXZFUSx3QkFBUyxHQUFHLGVBQWUsQUFBbEIsQ0FBbUIifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AgentExecutionEvent, ExecutionEventBus } from "@a2a-js/sdk/server";
|
|
2
|
+
import { PSAgent } from "../PSAgent";
|
|
3
|
+
import { PSAgentTool } from "../PSAgentTool";
|
|
4
|
+
export declare class PSExecutionEventBus implements ExecutionEventBus {
|
|
5
|
+
listeners: {
|
|
6
|
+
[eventName: string]: ((event: AgentExecutionEvent) => void)[];
|
|
7
|
+
};
|
|
8
|
+
publish(event: AgentExecutionEvent): void;
|
|
9
|
+
on(eventName: 'event' | 'finished', listener: (event: AgentExecutionEvent) => void): this;
|
|
10
|
+
off(eventName: 'event' | 'finished', listener: (event: AgentExecutionEvent) => void): this;
|
|
11
|
+
once(eventName: 'event' | 'finished', listener: (event: AgentExecutionEvent) => void): this;
|
|
12
|
+
removeAllListeners(eventName?: 'event' | 'finished'): this;
|
|
13
|
+
finished(): void;
|
|
14
|
+
}
|
|
15
|
+
export declare class PSSubAgentTool extends PSAgentTool {
|
|
16
|
+
static TOOL_NAME: string;
|
|
17
|
+
private readonly sub_agents;
|
|
18
|
+
constructor(sub_agents: PSAgent[]);
|
|
19
|
+
run(input: Record<string, any>): Promise<Record<string, any>>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PSSubAgentTool = exports.PSExecutionEventBus = void 0;
|
|
4
|
+
const server_1 = require("@a2a-js/sdk/server");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const PSAgentTool_1 = require("../PSAgentTool");
|
|
7
|
+
class PSExecutionEventBus {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.listeners = {};
|
|
10
|
+
}
|
|
11
|
+
publish(event) {
|
|
12
|
+
console.log(`Event published: ${JSON.stringify(event)}`);
|
|
13
|
+
}
|
|
14
|
+
on(eventName, listener) {
|
|
15
|
+
console.log(`Listener added for event: ${eventName}`);
|
|
16
|
+
if (!this.listeners[eventName]) {
|
|
17
|
+
this.listeners[eventName] = [];
|
|
18
|
+
}
|
|
19
|
+
this.listeners[eventName].push(listener);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
;
|
|
23
|
+
off(eventName, listener) {
|
|
24
|
+
console.log(`Listener removed for event: ${eventName}`);
|
|
25
|
+
if (!this.listeners[eventName])
|
|
26
|
+
return this;
|
|
27
|
+
this.listeners[eventName] = this.listeners[eventName].filter(l => l !== listener);
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
once(eventName, listener) {
|
|
31
|
+
console.log(`Once listener added for event: ${eventName}`);
|
|
32
|
+
if (!this.listeners[eventName]) {
|
|
33
|
+
this.listeners[eventName] = [];
|
|
34
|
+
}
|
|
35
|
+
const onceListener = (event) => {
|
|
36
|
+
listener(event);
|
|
37
|
+
this.off(eventName, onceListener);
|
|
38
|
+
};
|
|
39
|
+
this.listeners[eventName].push(onceListener);
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
removeAllListeners(eventName) {
|
|
43
|
+
if (eventName) {
|
|
44
|
+
console.log(`All listeners removed for event: ${eventName}`);
|
|
45
|
+
delete this.listeners[eventName];
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.log(`All listeners removed`);
|
|
49
|
+
this.listeners = {};
|
|
50
|
+
}
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
finished() {
|
|
54
|
+
this.listeners = {};
|
|
55
|
+
console.log(`Event bus finished`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.PSExecutionEventBus = PSExecutionEventBus;
|
|
59
|
+
class PSSubAgentTool extends PSAgentTool_1.PSAgentTool {
|
|
60
|
+
constructor(sub_agents) {
|
|
61
|
+
super({
|
|
62
|
+
name: PSSubAgentTool.TOOL_NAME,
|
|
63
|
+
description: `Use this ${PSSubAgentTool.TOOL_NAME} one or more of sub agents available.
|
|
64
|
+
List of the sub agents you can invoke are as follows:
|
|
65
|
+
${sub_agents.map(sa => `- ${sa.Name}: ${sa.Description}\n\t* input schema for ${sa.Name} : ${JSON.stringify(sa.InputSchema)}\n`).join("\n")}
|
|
66
|
+
The input is a JSON array with each object in array having the following properties:
|
|
67
|
+
- 'name' (string) - the name of the sub agent to be created or modified.
|
|
68
|
+
- 'input' (object) - the input to the sub agent confirming to its input schema.
|
|
69
|
+
The output will be a JSON array outputs from the agents.`,
|
|
70
|
+
inputschema: {
|
|
71
|
+
url: `http://localhost/${PSSubAgentTool.TOOL_NAME}`,
|
|
72
|
+
method: "POST",
|
|
73
|
+
//title: `${PSSubAgentTool.TOOL_NAME}_inputs`,
|
|
74
|
+
//description: "Input for Artifact Tool",
|
|
75
|
+
requestBody: {
|
|
76
|
+
type: "object",
|
|
77
|
+
properties: {
|
|
78
|
+
sub_agents: {
|
|
79
|
+
type: "array",
|
|
80
|
+
title: "sub_agents",
|
|
81
|
+
description: "Array of sub agents to be invoked",
|
|
82
|
+
items: {
|
|
83
|
+
type: "object",
|
|
84
|
+
properties: {
|
|
85
|
+
name: {
|
|
86
|
+
type: "string",
|
|
87
|
+
title: "name",
|
|
88
|
+
description: "The name of the sub agent",
|
|
89
|
+
},
|
|
90
|
+
input: {
|
|
91
|
+
type: "object",
|
|
92
|
+
title: "input",
|
|
93
|
+
description: "The input to the sub agent",
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
required: ["name", "input"]
|
|
97
|
+
},
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
required: ["sub_agents"],
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
this.sub_agents = sub_agents || [];
|
|
105
|
+
}
|
|
106
|
+
async run(input) {
|
|
107
|
+
console.log(`Invoking ${PSSubAgentTool.TOOL_NAME} with input: ${JSON.stringify(input)}`);
|
|
108
|
+
const agentworkers = Array();
|
|
109
|
+
for (const sa_input of input.sub_agents) {
|
|
110
|
+
const sa = this.sub_agents.find(s => s.Name === sa_input.name);
|
|
111
|
+
if (!sa) {
|
|
112
|
+
return {
|
|
113
|
+
status: "error",
|
|
114
|
+
output: `Sub agent with name ${sa_input.name} not found`
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// TODO: validate input against sa.InputSchema
|
|
118
|
+
// if valid, invoke the sub agent
|
|
119
|
+
// else return error
|
|
120
|
+
// const validation = sa.validateInput(sa_input.input as any);
|
|
121
|
+
// if(!validation.valid) {
|
|
122
|
+
// return {
|
|
123
|
+
// status: "error",
|
|
124
|
+
// output: `Input validation failed for sub agent ${sa_input.name}: ${validation.errors?.map(e=>e.message).join(", ")}`
|
|
125
|
+
// }
|
|
126
|
+
// }
|
|
127
|
+
agentworkers.push(new Promise((resolve, reject) => {
|
|
128
|
+
try {
|
|
129
|
+
const taskId = (0, zod_1.uuidv4)().toString();
|
|
130
|
+
const userMessage = {
|
|
131
|
+
kind: "message",
|
|
132
|
+
messageId: (0, zod_1.uuidv4)().toString(),
|
|
133
|
+
parts: [
|
|
134
|
+
{
|
|
135
|
+
kind: "text",
|
|
136
|
+
text: `Input: ${JSON.stringify(sa_input.input)}`
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
role: "user",
|
|
140
|
+
taskId
|
|
141
|
+
};
|
|
142
|
+
const reqContext = new server_1.RequestContext(userMessage, taskId, (0, zod_1.uuidv4)().toString());
|
|
143
|
+
console.log(userMessage, taskId, reqContext);
|
|
144
|
+
resolve({});
|
|
145
|
+
// collect results and return
|
|
146
|
+
}
|
|
147
|
+
catch (e) {
|
|
148
|
+
reject({
|
|
149
|
+
status: "error",
|
|
150
|
+
output: `Sub agent ${sa_input.name} invocation failed with error: ${e.message}`
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
status: "error",
|
|
157
|
+
output: `Not implemented yet`
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.PSSubAgentTool = PSSubAgentTool;
|
|
162
|
+
PSSubAgentTool.TOOL_NAME = "subagent_tool";
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNTdWJBZ2VudFRvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Rvb2xzL1BTU3ViQWdlbnRUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLCtDQUE0RjtBQUM1Riw2QkFBNkI7QUFHN0IsZ0RBQTZDO0FBSTdDLE1BQWEsbUJBQW1CO0lBQWhDO1FBQ0ksY0FBUyxHQUFzRSxFQUFFLENBQUM7SUE0Q3RGLENBQUM7SUEzQ0csT0FBTyxDQUFDLEtBQTBCO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCxFQUFFLENBQUMsU0FBK0IsRUFBRSxRQUE4QztRQUNoRixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUFBLENBQUM7SUFDRixHQUFHLENBQUMsU0FBK0IsRUFBRSxRQUE4QztRQUNqRixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FB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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './lib/PSAI';
|
|
2
|
+
export * from './lib/PSAgent';
|
|
3
|
+
export * from './lib/PSAgentConfig';
|
|
4
|
+
export * from './lib/PSAgentLogger';
|
|
5
|
+
export * from './lib/PSAgentTool';
|
|
6
|
+
export * from './lib/PSAgentTask';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQyJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PSAgentLogger } from './PSAgentLogger';
|
|
2
|
+
export declare class PSAI {
|
|
3
|
+
private readonly token;
|
|
4
|
+
private dimensions;
|
|
5
|
+
private readonly baseUrl;
|
|
6
|
+
private readonly log;
|
|
7
|
+
private readonly clientid?;
|
|
8
|
+
constructor(token: string, baseUrl?: string, log?: PSAgentLogger);
|
|
9
|
+
getDimensions(embeddingModel?: string): number;
|
|
10
|
+
embedQuery(text: string, embeddingModel?: string): Promise<number[]>;
|
|
11
|
+
embedDocuments(text: string[], embeddingModel?: string): Promise<number[][]>;
|
|
12
|
+
getModels(): Promise<any>;
|
|
13
|
+
llm(prompt: string, model?: string, systemmsg?: string): Promise<any>;
|
|
14
|
+
static getServiceToken(options?: Record<string, string>): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* fetch access token by launching a local server to listen for the callback
|
|
17
|
+
* @param options - baseUrl and appKey for authentication
|
|
18
|
+
* @returns accessToken and refreshToken
|
|
19
|
+
* @throws error if any required values are missing or if authentication fails
|
|
20
|
+
*/
|
|
21
|
+
static getAuthToken(options?: Record<string, string>): Promise<{
|
|
22
|
+
accessToken: string;
|
|
23
|
+
refreshToken: string;
|
|
24
|
+
}>;
|
|
25
|
+
}
|