@arki-moe/agent-ts 5.3.0 → 5.4.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/README.md +5 -0
- package/dist/index.d.ts +22 -2
- package/dist/index.js +18 -3
- package/dist/types.d.ts +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,6 +38,10 @@ const result = await agent.run("What time is it?");
|
|
|
38
38
|
console.log(result.messages);
|
|
39
39
|
console.log(result.usage, result.usageSum);
|
|
40
40
|
|
|
41
|
+
// run also accepts multiple user messages or Message objects
|
|
42
|
+
await agent.run(["Hello", "What's next?"]);
|
|
43
|
+
await agent.run({ role: Role.System, content: "You are brief." });
|
|
44
|
+
|
|
41
45
|
// context is a public property that can be read directly
|
|
42
46
|
console.log(agent.context);
|
|
43
47
|
```
|
|
@@ -58,6 +62,7 @@ When `apiKey` is not provided in config, adapters read from the corresponding en
|
|
|
58
62
|
- `agent.context` - Public property, complete conversation history
|
|
59
63
|
- `agent.registerTool(tool)` - Register tool
|
|
60
64
|
- `agent.run(message)` - Execute tool chain automatically, returns `{ messages, usage, usageSum }`
|
|
65
|
+
- `message` can be `string | string[] | Message | Message[]`
|
|
61
66
|
|
|
62
67
|
### Config
|
|
63
68
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { AgentConfig, AgentLike, Context, Message, Tool, Usage } from "./types";
|
|
1
|
+
import type { AgentConfig, AgentLike, Context, Message, RunInput, Tool, Usage } from "./types";
|
|
2
2
|
export { openaiAdapter } from "./adapter/openai";
|
|
3
3
|
export { openrouterAdapter } from "./adapter/openrouter";
|
|
4
4
|
export { selfhostChatCompletionsAdapter } from "./adapter/selfhost_chat_completions";
|
|
5
|
-
export type { Adapter, AgentConfig, AgentLike, Context, Message, Tool, Usage, AdapterResult } from "./types";
|
|
5
|
+
export type { Adapter, AgentConfig, AgentLike, Context, Message, RunInput, Tool, Usage, AdapterResult } from "./types";
|
|
6
6
|
export { Role } from "./types";
|
|
7
7
|
export declare class Agent implements AgentLike {
|
|
8
8
|
context: Context;
|
|
@@ -15,9 +15,29 @@ export declare class Agent implements AgentLike {
|
|
|
15
15
|
private onToolResult?;
|
|
16
16
|
constructor(adapterName: string, config: AgentConfig);
|
|
17
17
|
registerTool(tool: Tool): void;
|
|
18
|
+
run(message: RunInput): Promise<{
|
|
19
|
+
messages: Message[];
|
|
20
|
+
usage?: Usage;
|
|
21
|
+
usageSum?: Usage;
|
|
22
|
+
}>;
|
|
18
23
|
run(message: string): Promise<{
|
|
19
24
|
messages: Message[];
|
|
20
25
|
usage?: Usage;
|
|
21
26
|
usageSum?: Usage;
|
|
22
27
|
}>;
|
|
28
|
+
run(message: string[]): Promise<{
|
|
29
|
+
messages: Message[];
|
|
30
|
+
usage?: Usage;
|
|
31
|
+
usageSum?: Usage;
|
|
32
|
+
}>;
|
|
33
|
+
run(message: Message): Promise<{
|
|
34
|
+
messages: Message[];
|
|
35
|
+
usage?: Usage;
|
|
36
|
+
usageSum?: Usage;
|
|
37
|
+
}>;
|
|
38
|
+
run(message: Message[]): Promise<{
|
|
39
|
+
messages: Message[];
|
|
40
|
+
usage?: Usage;
|
|
41
|
+
usageSum?: Usage;
|
|
42
|
+
}>;
|
|
23
43
|
}
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,19 @@ const adapters = {
|
|
|
19
19
|
openrouter: openrouter_1.openrouterAdapter,
|
|
20
20
|
selfhost_chat_completions: selfhost_chat_completions_1.selfhostChatCompletionsAdapter,
|
|
21
21
|
};
|
|
22
|
+
const normalizeRunInput = (input) => {
|
|
23
|
+
if (typeof input === "string")
|
|
24
|
+
return [{ role: types_1.Role.User, content: input }];
|
|
25
|
+
if (Array.isArray(input)) {
|
|
26
|
+
if (input.length === 0)
|
|
27
|
+
return [];
|
|
28
|
+
if (typeof input[0] === "string") {
|
|
29
|
+
return input.map((content) => ({ role: types_1.Role.User, content }));
|
|
30
|
+
}
|
|
31
|
+
return input;
|
|
32
|
+
}
|
|
33
|
+
return [input];
|
|
34
|
+
};
|
|
22
35
|
class Agent {
|
|
23
36
|
constructor(adapterName, config) {
|
|
24
37
|
this.context = [];
|
|
@@ -47,9 +60,11 @@ class Agent {
|
|
|
47
60
|
const pushToSession = (msgs) => {
|
|
48
61
|
sessionContext.push(...msgs);
|
|
49
62
|
};
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
63
|
+
const inputMessages = normalizeRunInput(message);
|
|
64
|
+
if (inputMessages.length === 0)
|
|
65
|
+
return { messages: [] };
|
|
66
|
+
pushToSession(inputMessages);
|
|
67
|
+
persistToContext(inputMessages);
|
|
53
68
|
const addUsage = (next) => {
|
|
54
69
|
if (!next)
|
|
55
70
|
return;
|
package/dist/types.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export type Message = {
|
|
|
27
27
|
isError?: boolean;
|
|
28
28
|
};
|
|
29
29
|
export type Context = Message[];
|
|
30
|
+
export type RunInput = string | string[] | Message | Message[];
|
|
30
31
|
export type Usage = {
|
|
31
32
|
promptTokens: number;
|
|
32
33
|
completionTokens: number;
|
|
@@ -35,7 +36,7 @@ export type Usage = {
|
|
|
35
36
|
export interface AgentLike {
|
|
36
37
|
context: Context;
|
|
37
38
|
registerTool: (tool: Tool) => void;
|
|
38
|
-
run: (message:
|
|
39
|
+
run: (message: RunInput) => Promise<{
|
|
39
40
|
messages: Message[];
|
|
40
41
|
usage?: Usage;
|
|
41
42
|
usageSum?: Usage;
|