@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 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 userMessage = { role: types_1.Role.User, content: message };
51
- pushToSession([userMessage]);
52
- persistToContext([userMessage]);
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: string) => Promise<{
39
+ run: (message: RunInput) => Promise<{
39
40
  messages: Message[];
40
41
  usage?: Usage;
41
42
  usageSum?: Usage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arki-moe/agent-ts",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "Minimal Agent library, zero dependencies",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",