@eko-ai/eko 2.0.2-alpha.8 → 2.0.2-alpha.9

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.
@@ -19,13 +19,13 @@ export declare class Agent {
19
19
  protected mcpClient?: IMcpClient;
20
20
  protected planDescription?: string;
21
21
  constructor(params: AgentParams);
22
- run(context: Context, agentChain: AgentChain): Promise<string | null>;
23
- runWithContext(agentContext: AgentContext, mcpClient?: IMcpClient, maxReactNum?: number): Promise<string | null>;
22
+ run(context: Context, agentChain: AgentChain): Promise<string>;
23
+ runWithContext(agentContext: AgentContext, mcpClient?: IMcpClient, maxReactNum?: number): Promise<string>;
24
24
  protected handleResult(agentContext: AgentContext, messages: LanguageModelV1Prompt, agentTools: Tool[], results: Array<LanguageModelV1TextPart | LanguageModelV1ToolCallPart>): Promise<string | null>;
25
25
  protected system_auto_tools(agentNode: WorkflowAgent): Tool[];
26
26
  private removeDuplicateToolUse;
27
- protected initMessages(agentContext: AgentContext, tools?: Tool[]): LanguageModelV1Prompt;
28
- protected extSysPrompt(): string;
27
+ protected initMessages(agentContext: AgentContext, tools?: Tool[]): Promise<LanguageModelV1Prompt>;
28
+ protected extSysPrompt(): Promise<string>;
29
29
  private listTools;
30
30
  protected controlMcpTools(agentContext: AgentContext, messages: LanguageModelV1Prompt, loopNum: number): Promise<{
31
31
  mcpTools: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agent/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agent/base.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export default abstract class BaseBrowserLabelsAgent extends BaseBrowserAgent {
9
9
  protected scroll_to_element(agentContext: AgentContext, index: number): Promise<void>;
10
10
  protected scroll_mouse_wheel(agentContext: AgentContext, amount: number): Promise<void>;
11
11
  protected hover_to_element(agentContext: AgentContext, index: number): Promise<void>;
12
+ protected get_select_options(agentContext: AgentContext, index: number): Promise<any>;
13
+ protected select_option(agentContext: AgentContext, index: number, option: string): Promise<any>;
12
14
  protected screenshot_and_html(agentContext: AgentContext): Promise<{
13
15
  imageBase64: string;
14
16
  imageType: "image/jpeg" | "image/png";
@@ -1 +1 @@
1
- {"version":3,"file":"browser_labels.d.ts","sourceRoot":"","sources":["../../../src/agent/browser/browser_labels.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,sBAAuB,SAAQ,gBAAgB;gBAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU;cAqCvD,UAAU,CACxB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC;cAOA,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAClC,OAAO,CAAC,IAAI,CAAC;cAMA,iBAAiB,CAC/B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cAaA,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;cAgBA,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cAIA,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC;QACvE,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAsCF,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,cAAc;cA6RN,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;CA8BjB"}
1
+ {"version":3,"file":"browser_labels.d.ts","sourceRoot":"","sources":["../../../src/agent/browser/browser_labels.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,sBAAuB,SAAQ,gBAAgB;gBAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU;cAqCvD,UAAU,CACxB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC;cAOA,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAClC,OAAO,CAAC,IAAI,CAAC;cAMA,iBAAiB,CAC/B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cAaA,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;cAgBA,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cAIA,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,GAAG,CAAC;cAMC,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC;cAMC,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC;QACvE,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAuCF,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,cAAc;cAkVN,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;CA8BjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../../src/agent/computer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,eAAO,MAAM,UAAU,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,iBAAkB,SAAQ,KAAK;gBAE/C,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;IAgDhG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC;QACjE,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC;KACvC,CAAC;IAEF,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,KAAK,CACtB,YAAY,EAAE,YAAY,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GACvC,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,OAAO,CACxB,YAAY,EAAE,YAAY,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,KAAK,CACtB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAC9B,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC;IAEhB,OAAO,CAAC,cAAc;cAyON,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;CAuCjB"}
1
+ {"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../../src/agent/computer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,eAAO,MAAM,UAAU,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,iBAAkB,SAAQ,KAAK;gBAE/C,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;IAgDhG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC;QACjE,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC;KACvC,CAAC;IAEF,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,KAAK,CACtB,YAAY,EAAE,YAAY,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GACvC,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,OAAO,CACxB,YAAY,EAAE,YAAY,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,KAAK,CACtB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAC9B,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC;IAEhB,OAAO,CAAC,cAAc;cAiPN,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;CAuCjB"}
@@ -3,7 +3,7 @@ import { AgentContext } from "../core/context";
3
3
  import { Tool, IMcpClient } from "../types";
4
4
  export declare const AGENT_NAME = "File";
5
5
  export default abstract class BaseFileAgent extends Agent {
6
- constructor(work_path?: string, llms?: string[], ext_tools?: Tool[], mcpClient?: IMcpClient);
6
+ constructor(work_path?: string, llms?: string[], ext_tools?: Tool[], mcpClient?: IMcpClient, planDescription?: string);
7
7
  protected abstract file_list(agentContext: AgentContext, path: string): Promise<string[]>;
8
8
  protected abstract file_read(agentContext: AgentContext, path: string): Promise<string>;
9
9
  protected abstract file_write(agentContext: AgentContext, path: string, content: string, append: boolean): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/agent/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,UAAU,SAAS,CAAC;AAEjC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAc,SAAQ,KAAK;gBAErD,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,SAAS,CAAC,EAAE,IAAI,EAAE,EAClB,SAAS,CAAC,EAAE,UAAU;IAsBxB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAC1B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,EAAE,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAC1B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAElB,SAAS,CAAC,QAAQ,CAAC,UAAU,CAC3B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CACjC,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAClC,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,EAAE,CAAC;IAEpB,OAAO,CAAC,cAAc;CAyJvB"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/agent/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,UAAU,SAAS,CAAC;AAEjC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAc,SAAQ,KAAK;gBAErD,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,SAAS,CAAC,EAAE,IAAI,EAAE,EAClB,SAAS,CAAC,EAAE,UAAU,EACtB,eAAe,CAAC,EAAE,MAAM;IAqB1B,SAAS,CAAC,QAAQ,CAAC,SAAS,CAC1B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,EAAE,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAC1B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAElB,SAAS,CAAC,QAAQ,CAAC,UAAU,CAC3B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CACjC,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAEhB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAClC,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,EAAE,CAAC;IAEpB,OAAO,CAAC,cAAc;CAyJvB"}
@@ -3,7 +3,7 @@ import { AgentContext } from "../core/context";
3
3
  import { Tool, IMcpClient } from "../types";
4
4
  export declare const AGENT_NAME = "Shell";
5
5
  export default abstract class BaseShellAgent extends Agent {
6
- constructor(llms?: string[], ext_tools?: Tool[], mcpClient?: IMcpClient);
6
+ constructor(llms?: string[], ext_tools?: Tool[], mcpClient?: IMcpClient, planDescription?: string);
7
7
  protected abstract create_session(agentContext: AgentContext, exec_dir: string): Promise<{
8
8
  session_id: string;
9
9
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/agent/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,UAAU,UAAU,CAAC;AAElC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,cAAe,SAAQ,KAAK;gBAC5C,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU;IAiBvE,SAAS,CAAC,QAAQ,CAAC,cAAc,CAC/B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,SAAS,CAAC,QAAQ,CAAC,UAAU,CAC3B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAElB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAC9B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAEhB,OAAO,CAAC,cAAc;CA+EvB"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/agent/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,UAAU,UAAU,CAAC;AAElC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,cAAe,SAAQ,KAAK;gBAEtD,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,SAAS,CAAC,EAAE,IAAI,EAAE,EAClB,SAAS,CAAC,EAAE,UAAU,EACtB,eAAe,CAAC,EAAE,MAAM;IAkB1B,SAAS,CAAC,QAAQ,CAAC,cAAc,CAC/B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,SAAS,CAAC,QAAQ,CAAC,UAAU,CAC3B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAElB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAC9B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAEhB,OAAO,CAAC,cAAc;CA+EvB"}
@@ -8,5 +8,6 @@ export declare function convertToolSchema(tool: ToolSchema): LanguageModelV1Func
8
8
  export declare function toImage(imageData: string): Uint8Array | URL;
9
9
  export declare function mergeTools(tools1: Tool[], tools2: Tool[]): Tool[];
10
10
  export declare function mergeAgents(agents1: Agent[], agents2: Agent[]): Agent[];
11
+ export declare function sub(str: string, maxLength: number, appendPoint?: boolean): string;
11
12
  export declare function fixXmlTag(code: string): string;
12
13
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;AAED,wBAAgB,MAAM,IAAI,MAAM,CAM/B;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACjD,GAAG,EAAE,MAAM,CAAC,EACZ,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,GACf,2BAA2B,CA8B7B;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,GAAG,CAoB3D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAuBjE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAuBvE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,UA6ErC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;AAED,wBAAgB,MAAM,IAAI,MAAM,CAM/B;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACjD,GAAG,EAAE,MAAM,CAAC,EACZ,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,GACf,2BAA2B,CA8B7B;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,GAAG,CAoB3D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAuBjE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAuBvE;AAED,wBAAgB,GAAG,CACjB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,OAAc,GAC1B,MAAM,CAQR;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,UA6ErC"}
package/dist/index.cjs.js CHANGED
@@ -8563,6 +8563,15 @@ function mergeAgents(agents1, agents2) {
8563
8563
  }
8564
8564
  return tools;
8565
8565
  }
8566
+ function sub(str, maxLength, appendPoint = true) {
8567
+ if (!str) {
8568
+ return "";
8569
+ }
8570
+ if (str.length > maxLength) {
8571
+ return str.substring(0, maxLength) + (appendPoint ? "..." : "");
8572
+ }
8573
+ return str;
8574
+ }
8566
8575
  function fixXmlTag(code) {
8567
8576
  function fixDoubleChar(code) {
8568
8577
  const stack = [];
@@ -15989,10 +15998,12 @@ function getAgentSystemPrompt(agent, agentNode, context, tools, extSysPrompt) {
15989
15998
  let agentNodeXml = agentNode.xml;
15990
15999
  let hasWatch = agentNodeXml.indexOf("</watch>") > -1;
15991
16000
  let hasForEach = agentNodeXml.indexOf("</forEach>") > -1;
15992
- let hasHumanTool = (tools || agent.Tools).filter((tool) => tool.name == TOOL_NAME$3).length > 0;
16001
+ let hasHumanTool = (tools || agent.Tools).filter((tool) => tool.name == TOOL_NAME$3)
16002
+ .length > 0;
15993
16003
  let hasVariable = agentNodeXml.indexOf("input=") > -1 ||
15994
16004
  agentNodeXml.indexOf("output=") > -1 ||
15995
- (tools || agent.Tools).filter((tool) => tool.name == TOOL_NAME$1).length > 0;
16005
+ (tools || agent.Tools).filter((tool) => tool.name == TOOL_NAME$1)
16006
+ .length > 0;
15996
16007
  if (hasHumanTool) {
15997
16008
  prompt += HUMAN_PROMPT;
15998
16009
  }
@@ -16007,8 +16018,17 @@ function getAgentSystemPrompt(agent, agentNode, context, tools, extSysPrompt) {
16007
16018
  prompt += WATCH_PROMPT;
16008
16019
  nodePrompt += WATCH_NODE;
16009
16020
  }
16010
- return AGENT_SYSTEM_TEMPLATE
16011
- .replace("{name}", config.name)
16021
+ if (context.chain.agents.length > 1) {
16022
+ prompt += "\n Main task: " + context.chain.taskPrompt;
16023
+ prompt += "\n# Pre-task execution results";
16024
+ for (let i = 0; i < context.chain.agents.length; i++) {
16025
+ let agentChain = context.chain.agents[i];
16026
+ if (agentChain.agentResult) {
16027
+ prompt += `\n## ${agentChain.agent.task || agentChain.agent.name}\n${sub(agentChain.agentResult, 500)}`;
16028
+ }
16029
+ }
16030
+ }
16031
+ return AGENT_SYSTEM_TEMPLATE.replace("{name}", config.name)
16012
16032
  .replace("{agent}", agent.Name)
16013
16033
  .replace("{description}", agent.Description)
16014
16034
  .replace("{datetime}", new Date().toISOString())
@@ -16052,7 +16072,7 @@ class Agent {
16052
16072
  let context = agentContext.context;
16053
16073
  let agentNode = agentContext.agentChain.agent;
16054
16074
  const tools = [...this.tools, ...this.system_auto_tools(agentNode)];
16055
- let messages = this.initMessages(agentContext, tools);
16075
+ let messages = await this.initMessages(agentContext, tools);
16056
16076
  let rlm = new RetryLanguageModel(context.config.llms, this.llms);
16057
16077
  let agentTools = tools;
16058
16078
  while (loopNum < maxReactNum) {
@@ -16074,7 +16094,7 @@ class Agent {
16074
16094
  }
16075
16095
  loopNum++;
16076
16096
  }
16077
- return null;
16097
+ return "Unfinished";
16078
16098
  }
16079
16099
  async handleResult(agentContext, messages, agentTools, results) {
16080
16100
  let text = null;
@@ -16184,11 +16204,11 @@ class Agent {
16184
16204
  }
16185
16205
  return _results;
16186
16206
  }
16187
- initMessages(agentContext, tools) {
16207
+ async initMessages(agentContext, tools) {
16188
16208
  let messages = [
16189
16209
  {
16190
16210
  role: "system",
16191
- content: getAgentSystemPrompt(this, agentContext.agentChain.agent, agentContext.context, tools, this.extSysPrompt()),
16211
+ content: getAgentSystemPrompt(this, agentContext.agentChain.agent, agentContext.context, tools, await this.extSysPrompt()),
16192
16212
  },
16193
16213
  {
16194
16214
  role: "user",
@@ -16202,7 +16222,7 @@ class Agent {
16202
16222
  ];
16203
16223
  return messages;
16204
16224
  }
16205
- extSysPrompt() {
16225
+ async extSysPrompt() {
16206
16226
  return "";
16207
16227
  }
16208
16228
  async listTools(agentNode, context, mcpClient, mcpParams) {
@@ -16989,7 +17009,7 @@ class Eko {
16989
17009
  map[item.Name] = item;
16990
17010
  return map;
16991
17011
  }, {});
16992
- let lastResult;
17012
+ let results = [];
16993
17013
  for (let i = 0; i < workflow.agents.length; i++) {
16994
17014
  context.checkAborted();
16995
17015
  let agentNode = workflow.agents[i];
@@ -17000,12 +17020,12 @@ class Eko {
17000
17020
  let agentChain = new AgentChain(agentNode);
17001
17021
  context.chain.push(agentChain);
17002
17022
  agent.result = await agent.run(context, agentChain);
17003
- lastResult = agent.result;
17023
+ results.push(agent.result);
17004
17024
  }
17005
17025
  return {
17006
17026
  success: true,
17007
17027
  stopReason: "done",
17008
- result: lastResult,
17028
+ result: results[results.length - 1],
17009
17029
  taskId: context.taskId,
17010
17030
  };
17011
17031
  }
@@ -17259,18 +17279,17 @@ function parseChunk(chunk) {
17259
17279
 
17260
17280
  const AGENT_NAME$3 = "File";
17261
17281
  class BaseFileAgent extends Agent {
17262
- constructor(work_path, llms, ext_tools, mcpClient) {
17282
+ constructor(work_path, llms, ext_tools, mcpClient, planDescription) {
17263
17283
  const _tools_ = [];
17264
- const prompt = work_path
17265
- ? `Your default working path is: ${work_path}`
17266
- : "";
17284
+ const prompt = work_path ? `Your default working path is: ${work_path}` : "";
17267
17285
  super({
17268
17286
  name: AGENT_NAME$3,
17269
17287
  description: `You are a file agent, handling file-related tasks such as creating, finding, reading, modifying files, etc.${prompt}`,
17270
17288
  tools: _tools_,
17271
17289
  llms: llms,
17272
17290
  mcpClient: mcpClient,
17273
- planDescription: "File operation agent, handling file-related tasks such as creating, finding, reading, modifying files, etc, only text file writing is supported.",
17291
+ planDescription: planDescription ||
17292
+ "File operation agent, handling file-related tasks such as creating, finding, reading, modifying files, etc, only text file writing is supported.",
17274
17293
  });
17275
17294
  let init_tools = this.buildInitTools();
17276
17295
  if (ext_tools && ext_tools.length > 0) {
@@ -17392,7 +17411,7 @@ class BaseFileAgent extends Agent {
17392
17411
 
17393
17412
  const AGENT_NAME$2 = "Shell";
17394
17413
  class BaseShellAgent extends Agent {
17395
- constructor(llms, ext_tools, mcpClient) {
17414
+ constructor(llms, ext_tools, mcpClient, planDescription) {
17396
17415
  const _tools_ = [];
17397
17416
  super({
17398
17417
  name: AGENT_NAME$2,
@@ -17400,7 +17419,7 @@ class BaseShellAgent extends Agent {
17400
17419
  tools: _tools_,
17401
17420
  llms: llms,
17402
17421
  mcpClient: mcpClient,
17403
- planDescription: "Shell command agent, use to execute shell commands.",
17422
+ planDescription: planDescription || "Shell command agent, use to execute shell commands.",
17404
17423
  });
17405
17424
  let init_tools = this.buildInitTools();
17406
17425
  if (ext_tools && ext_tools.length > 0) {
@@ -17603,15 +17622,22 @@ This is a computer GUI interface, observe the execution through screenshots, and
17603
17622
  properties: {
17604
17623
  amount: {
17605
17624
  type: "number",
17606
- description: "Scroll amount (positive for up, negative for down)",
17607
- minimum: -10,
17625
+ description: "Scroll amount (up / down)",
17626
+ minimum: 1,
17608
17627
  maximum: 10,
17609
17628
  },
17629
+ direction: {
17630
+ type: "string",
17631
+ enum: ["up", "down"],
17632
+ },
17610
17633
  },
17611
- required: ["amount"],
17634
+ required: ["amount", "direction"],
17612
17635
  },
17613
17636
  execute: async (args, agentContext) => {
17614
- return await this.callInnerTool(() => this.scroll(agentContext, args.amount));
17637
+ return await this.callInnerTool(async () => {
17638
+ let amount = args.amount;
17639
+ await this.scroll(agentContext, args.direction == "up" ? -amount : amount);
17640
+ });
17615
17641
  },
17616
17642
  },
17617
17643
  {
@@ -18538,6 +18564,16 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
18538
18564
  async hover_to_element(agentContext, index) {
18539
18565
  await this.execute_script(agentContext, hover_to, [{ index }]);
18540
18566
  }
18567
+ async get_select_options(agentContext, index) {
18568
+ return await this.execute_script(agentContext, get_select_options, [
18569
+ { index },
18570
+ ]);
18571
+ }
18572
+ async select_option(agentContext, index, option) {
18573
+ return await this.execute_script(agentContext, select_option, [
18574
+ { index, option },
18575
+ ]);
18576
+ }
18541
18577
  async screenshot_and_html(agentContext) {
18542
18578
  try {
18543
18579
  let element_result = null;
@@ -18553,6 +18589,7 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
18553
18589
  }
18554
18590
  await sleep(50);
18555
18591
  let screenshot = await this.screenshot(agentContext);
18592
+ // agentContext.variables.set("selector_map", element_result.selector_map);
18556
18593
  let pseudoHtml = element_result.element_str;
18557
18594
  return {
18558
18595
  imageBase64: screenshot.imageBase64,
@@ -18736,6 +18773,44 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
18736
18773
  return await this.callInnerTool(() => this.extract_content(agentContext));
18737
18774
  },
18738
18775
  },
18776
+ {
18777
+ name: "get_select_options",
18778
+ description: "Get all options from a native dropdown element",
18779
+ parameters: {
18780
+ type: "object",
18781
+ properties: {
18782
+ index: {
18783
+ type: "number",
18784
+ description: "The index of the element to select",
18785
+ },
18786
+ },
18787
+ required: ["index"],
18788
+ },
18789
+ execute: async (args, agentContext) => {
18790
+ return await this.callInnerTool(() => this.get_select_options(agentContext, args.index));
18791
+ },
18792
+ },
18793
+ {
18794
+ name: "select_option",
18795
+ description: "Select the native dropdown option",
18796
+ parameters: {
18797
+ type: "object",
18798
+ properties: {
18799
+ index: {
18800
+ type: "number",
18801
+ description: "The index of the element to select",
18802
+ },
18803
+ option: {
18804
+ type: "string",
18805
+ description: "Text option",
18806
+ },
18807
+ },
18808
+ required: ["index", "option"],
18809
+ },
18810
+ execute: async (args, agentContext) => {
18811
+ return await this.callInnerTool(() => this.select_option(agentContext, args.index, args.option));
18812
+ },
18813
+ },
18739
18814
  {
18740
18815
  name: "get_all_tabs",
18741
18816
  description: "Get all tabs of the current browser",
@@ -18913,6 +18988,45 @@ function hover_to(params) {
18913
18988
  element.dispatchEvent(event);
18914
18989
  return true;
18915
18990
  }
18991
+ function get_select_options(params) {
18992
+ let element = window.get_highlight_element(params.index);
18993
+ if (!element || element.tagName.toUpperCase() !== "SELECT") {
18994
+ return "Error: Not a select element";
18995
+ }
18996
+ return {
18997
+ options: Array.from(element.options).map((opt) => ({
18998
+ index: opt.index,
18999
+ text: opt.text.trim(),
19000
+ value: opt.value,
19001
+ })),
19002
+ name: element.name,
19003
+ };
19004
+ }
19005
+ function select_option(params) {
19006
+ let element = window.get_highlight_element(params.index);
19007
+ if (!element || element.tagName.toUpperCase() !== "SELECT") {
19008
+ return "Error: Not a select element";
19009
+ }
19010
+ let text = params.option.trim();
19011
+ let option = Array.from(element.options).find((opt) => opt.text.trim() === text);
19012
+ if (!option) {
19013
+ option = Array.from(element.options).find((opt) => opt.value.trim() === text);
19014
+ }
19015
+ if (!option) {
19016
+ return {
19017
+ success: false,
19018
+ error: "Select Option not found",
19019
+ availableOptions: Array.from(element.options).map((o) => o.text.trim()),
19020
+ };
19021
+ }
19022
+ element.value = option.value;
19023
+ element.dispatchEvent(new Event("change"));
19024
+ return {
19025
+ success: true,
19026
+ selectedValue: option.value,
19027
+ selectedText: option.text.trim(),
19028
+ };
19029
+ }
18916
19030
 
18917
19031
  class BaseBrowserScreenAgent extends BaseBrowserAgent {
18918
19032
  constructor(llms, ext_tools, mcpClient) {
package/dist/index.esm.js CHANGED
@@ -8557,6 +8557,15 @@ function mergeAgents(agents1, agents2) {
8557
8557
  }
8558
8558
  return tools;
8559
8559
  }
8560
+ function sub(str, maxLength, appendPoint = true) {
8561
+ if (!str) {
8562
+ return "";
8563
+ }
8564
+ if (str.length > maxLength) {
8565
+ return str.substring(0, maxLength) + (appendPoint ? "..." : "");
8566
+ }
8567
+ return str;
8568
+ }
8560
8569
  function fixXmlTag(code) {
8561
8570
  function fixDoubleChar(code) {
8562
8571
  const stack = [];
@@ -15954,10 +15963,12 @@ function getAgentSystemPrompt(agent, agentNode, context, tools, extSysPrompt) {
15954
15963
  let agentNodeXml = agentNode.xml;
15955
15964
  let hasWatch = agentNodeXml.indexOf("</watch>") > -1;
15956
15965
  let hasForEach = agentNodeXml.indexOf("</forEach>") > -1;
15957
- let hasHumanTool = (tools || agent.Tools).filter((tool) => tool.name == TOOL_NAME$3).length > 0;
15966
+ let hasHumanTool = (tools || agent.Tools).filter((tool) => tool.name == TOOL_NAME$3)
15967
+ .length > 0;
15958
15968
  let hasVariable = agentNodeXml.indexOf("input=") > -1 ||
15959
15969
  agentNodeXml.indexOf("output=") > -1 ||
15960
- (tools || agent.Tools).filter((tool) => tool.name == TOOL_NAME$1).length > 0;
15970
+ (tools || agent.Tools).filter((tool) => tool.name == TOOL_NAME$1)
15971
+ .length > 0;
15961
15972
  if (hasHumanTool) {
15962
15973
  prompt += HUMAN_PROMPT;
15963
15974
  }
@@ -15972,8 +15983,17 @@ function getAgentSystemPrompt(agent, agentNode, context, tools, extSysPrompt) {
15972
15983
  prompt += WATCH_PROMPT;
15973
15984
  nodePrompt += WATCH_NODE;
15974
15985
  }
15975
- return AGENT_SYSTEM_TEMPLATE
15976
- .replace("{name}", config.name)
15986
+ if (context.chain.agents.length > 1) {
15987
+ prompt += "\n Main task: " + context.chain.taskPrompt;
15988
+ prompt += "\n# Pre-task execution results";
15989
+ for (let i = 0; i < context.chain.agents.length; i++) {
15990
+ let agentChain = context.chain.agents[i];
15991
+ if (agentChain.agentResult) {
15992
+ prompt += `\n## ${agentChain.agent.task || agentChain.agent.name}\n${sub(agentChain.agentResult, 500)}`;
15993
+ }
15994
+ }
15995
+ }
15996
+ return AGENT_SYSTEM_TEMPLATE.replace("{name}", config.name)
15977
15997
  .replace("{agent}", agent.Name)
15978
15998
  .replace("{description}", agent.Description)
15979
15999
  .replace("{datetime}", new Date().toISOString())
@@ -16017,7 +16037,7 @@ class Agent {
16017
16037
  let context = agentContext.context;
16018
16038
  let agentNode = agentContext.agentChain.agent;
16019
16039
  const tools = [...this.tools, ...this.system_auto_tools(agentNode)];
16020
- let messages = this.initMessages(agentContext, tools);
16040
+ let messages = await this.initMessages(agentContext, tools);
16021
16041
  let rlm = new RetryLanguageModel(context.config.llms, this.llms);
16022
16042
  let agentTools = tools;
16023
16043
  while (loopNum < maxReactNum) {
@@ -16039,7 +16059,7 @@ class Agent {
16039
16059
  }
16040
16060
  loopNum++;
16041
16061
  }
16042
- return null;
16062
+ return "Unfinished";
16043
16063
  }
16044
16064
  async handleResult(agentContext, messages, agentTools, results) {
16045
16065
  let text = null;
@@ -16149,11 +16169,11 @@ class Agent {
16149
16169
  }
16150
16170
  return _results;
16151
16171
  }
16152
- initMessages(agentContext, tools) {
16172
+ async initMessages(agentContext, tools) {
16153
16173
  let messages = [
16154
16174
  {
16155
16175
  role: "system",
16156
- content: getAgentSystemPrompt(this, agentContext.agentChain.agent, agentContext.context, tools, this.extSysPrompt()),
16176
+ content: getAgentSystemPrompt(this, agentContext.agentChain.agent, agentContext.context, tools, await this.extSysPrompt()),
16157
16177
  },
16158
16178
  {
16159
16179
  role: "user",
@@ -16167,7 +16187,7 @@ class Agent {
16167
16187
  ];
16168
16188
  return messages;
16169
16189
  }
16170
- extSysPrompt() {
16190
+ async extSysPrompt() {
16171
16191
  return "";
16172
16192
  }
16173
16193
  async listTools(agentNode, context, mcpClient, mcpParams) {
@@ -16954,7 +16974,7 @@ class Eko {
16954
16974
  map[item.Name] = item;
16955
16975
  return map;
16956
16976
  }, {});
16957
- let lastResult;
16977
+ let results = [];
16958
16978
  for (let i = 0; i < workflow.agents.length; i++) {
16959
16979
  context.checkAborted();
16960
16980
  let agentNode = workflow.agents[i];
@@ -16965,12 +16985,12 @@ class Eko {
16965
16985
  let agentChain = new AgentChain(agentNode);
16966
16986
  context.chain.push(agentChain);
16967
16987
  agent.result = await agent.run(context, agentChain);
16968
- lastResult = agent.result;
16988
+ results.push(agent.result);
16969
16989
  }
16970
16990
  return {
16971
16991
  success: true,
16972
16992
  stopReason: "done",
16973
- result: lastResult,
16993
+ result: results[results.length - 1],
16974
16994
  taskId: context.taskId,
16975
16995
  };
16976
16996
  }
@@ -17224,18 +17244,17 @@ function parseChunk(chunk) {
17224
17244
 
17225
17245
  const AGENT_NAME$3 = "File";
17226
17246
  class BaseFileAgent extends Agent {
17227
- constructor(work_path, llms, ext_tools, mcpClient) {
17247
+ constructor(work_path, llms, ext_tools, mcpClient, planDescription) {
17228
17248
  const _tools_ = [];
17229
- const prompt = work_path
17230
- ? `Your default working path is: ${work_path}`
17231
- : "";
17249
+ const prompt = work_path ? `Your default working path is: ${work_path}` : "";
17232
17250
  super({
17233
17251
  name: AGENT_NAME$3,
17234
17252
  description: `You are a file agent, handling file-related tasks such as creating, finding, reading, modifying files, etc.${prompt}`,
17235
17253
  tools: _tools_,
17236
17254
  llms: llms,
17237
17255
  mcpClient: mcpClient,
17238
- planDescription: "File operation agent, handling file-related tasks such as creating, finding, reading, modifying files, etc, only text file writing is supported.",
17256
+ planDescription: planDescription ||
17257
+ "File operation agent, handling file-related tasks such as creating, finding, reading, modifying files, etc, only text file writing is supported.",
17239
17258
  });
17240
17259
  let init_tools = this.buildInitTools();
17241
17260
  if (ext_tools && ext_tools.length > 0) {
@@ -17357,7 +17376,7 @@ class BaseFileAgent extends Agent {
17357
17376
 
17358
17377
  const AGENT_NAME$2 = "Shell";
17359
17378
  class BaseShellAgent extends Agent {
17360
- constructor(llms, ext_tools, mcpClient) {
17379
+ constructor(llms, ext_tools, mcpClient, planDescription) {
17361
17380
  const _tools_ = [];
17362
17381
  super({
17363
17382
  name: AGENT_NAME$2,
@@ -17365,7 +17384,7 @@ class BaseShellAgent extends Agent {
17365
17384
  tools: _tools_,
17366
17385
  llms: llms,
17367
17386
  mcpClient: mcpClient,
17368
- planDescription: "Shell command agent, use to execute shell commands.",
17387
+ planDescription: planDescription || "Shell command agent, use to execute shell commands.",
17369
17388
  });
17370
17389
  let init_tools = this.buildInitTools();
17371
17390
  if (ext_tools && ext_tools.length > 0) {
@@ -17568,15 +17587,22 @@ This is a computer GUI interface, observe the execution through screenshots, and
17568
17587
  properties: {
17569
17588
  amount: {
17570
17589
  type: "number",
17571
- description: "Scroll amount (positive for up, negative for down)",
17572
- minimum: -10,
17590
+ description: "Scroll amount (up / down)",
17591
+ minimum: 1,
17573
17592
  maximum: 10,
17574
17593
  },
17594
+ direction: {
17595
+ type: "string",
17596
+ enum: ["up", "down"],
17597
+ },
17575
17598
  },
17576
- required: ["amount"],
17599
+ required: ["amount", "direction"],
17577
17600
  },
17578
17601
  execute: async (args, agentContext) => {
17579
- return await this.callInnerTool(() => this.scroll(agentContext, args.amount));
17602
+ return await this.callInnerTool(async () => {
17603
+ let amount = args.amount;
17604
+ await this.scroll(agentContext, args.direction == "up" ? -amount : amount);
17605
+ });
17580
17606
  },
17581
17607
  },
17582
17608
  {
@@ -18503,6 +18529,16 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
18503
18529
  async hover_to_element(agentContext, index) {
18504
18530
  await this.execute_script(agentContext, hover_to, [{ index }]);
18505
18531
  }
18532
+ async get_select_options(agentContext, index) {
18533
+ return await this.execute_script(agentContext, get_select_options, [
18534
+ { index },
18535
+ ]);
18536
+ }
18537
+ async select_option(agentContext, index, option) {
18538
+ return await this.execute_script(agentContext, select_option, [
18539
+ { index, option },
18540
+ ]);
18541
+ }
18506
18542
  async screenshot_and_html(agentContext) {
18507
18543
  try {
18508
18544
  let element_result = null;
@@ -18518,6 +18554,7 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
18518
18554
  }
18519
18555
  await sleep(50);
18520
18556
  let screenshot = await this.screenshot(agentContext);
18557
+ // agentContext.variables.set("selector_map", element_result.selector_map);
18521
18558
  let pseudoHtml = element_result.element_str;
18522
18559
  return {
18523
18560
  imageBase64: screenshot.imageBase64,
@@ -18701,6 +18738,44 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
18701
18738
  return await this.callInnerTool(() => this.extract_content(agentContext));
18702
18739
  },
18703
18740
  },
18741
+ {
18742
+ name: "get_select_options",
18743
+ description: "Get all options from a native dropdown element",
18744
+ parameters: {
18745
+ type: "object",
18746
+ properties: {
18747
+ index: {
18748
+ type: "number",
18749
+ description: "The index of the element to select",
18750
+ },
18751
+ },
18752
+ required: ["index"],
18753
+ },
18754
+ execute: async (args, agentContext) => {
18755
+ return await this.callInnerTool(() => this.get_select_options(agentContext, args.index));
18756
+ },
18757
+ },
18758
+ {
18759
+ name: "select_option",
18760
+ description: "Select the native dropdown option",
18761
+ parameters: {
18762
+ type: "object",
18763
+ properties: {
18764
+ index: {
18765
+ type: "number",
18766
+ description: "The index of the element to select",
18767
+ },
18768
+ option: {
18769
+ type: "string",
18770
+ description: "Text option",
18771
+ },
18772
+ },
18773
+ required: ["index", "option"],
18774
+ },
18775
+ execute: async (args, agentContext) => {
18776
+ return await this.callInnerTool(() => this.select_option(agentContext, args.index, args.option));
18777
+ },
18778
+ },
18704
18779
  {
18705
18780
  name: "get_all_tabs",
18706
18781
  description: "Get all tabs of the current browser",
@@ -18878,6 +18953,45 @@ function hover_to(params) {
18878
18953
  element.dispatchEvent(event);
18879
18954
  return true;
18880
18955
  }
18956
+ function get_select_options(params) {
18957
+ let element = window.get_highlight_element(params.index);
18958
+ if (!element || element.tagName.toUpperCase() !== "SELECT") {
18959
+ return "Error: Not a select element";
18960
+ }
18961
+ return {
18962
+ options: Array.from(element.options).map((opt) => ({
18963
+ index: opt.index,
18964
+ text: opt.text.trim(),
18965
+ value: opt.value,
18966
+ })),
18967
+ name: element.name,
18968
+ };
18969
+ }
18970
+ function select_option(params) {
18971
+ let element = window.get_highlight_element(params.index);
18972
+ if (!element || element.tagName.toUpperCase() !== "SELECT") {
18973
+ return "Error: Not a select element";
18974
+ }
18975
+ let text = params.option.trim();
18976
+ let option = Array.from(element.options).find((opt) => opt.text.trim() === text);
18977
+ if (!option) {
18978
+ option = Array.from(element.options).find((opt) => opt.value.trim() === text);
18979
+ }
18980
+ if (!option) {
18981
+ return {
18982
+ success: false,
18983
+ error: "Select Option not found",
18984
+ availableOptions: Array.from(element.options).map((o) => o.text.trim()),
18985
+ };
18986
+ }
18987
+ element.value = option.value;
18988
+ element.dispatchEvent(new Event("change"));
18989
+ return {
18990
+ success: true,
18991
+ selectedValue: option.value,
18992
+ selectedText: option.text.trim(),
18993
+ };
18994
+ }
18881
18995
 
18882
18996
  class BaseBrowserScreenAgent extends BaseBrowserAgent {
18883
18997
  constructor(llms, ext_tools, mcpClient) {
@@ -1,7 +1,6 @@
1
1
  import { Agent } from "../agent";
2
2
  import Context from "../core/context";
3
- import { WorkflowAgent } from "../types/core.types";
4
- import { Tool } from "../types";
3
+ import { WorkflowAgent, Tool } from "../types";
5
4
  export declare function getAgentSystemPrompt(agent: Agent, agentNode: WorkflowAgent, context: Context, tools?: Tool[], extSysPrompt?: string): string;
6
5
  export declare function getAgentUserPrompt(agent: Agent, agentNode: WorkflowAgent, context: Context, tools?: Tool[]): string;
7
6
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/prompt/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,OAAO,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAgEhC,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,IAAI,EAAE,EACd,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAkCR;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,IAAI,EAAE,GACb,MAAM,CAaR"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/prompt/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,OAAO,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAsE/C,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,IAAI,EAAE,EACd,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CA+CR;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,IAAI,EAAE,GACb,MAAM,CAaR"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eko-ai/eko",
3
- "version": "2.0.2-alpha.8",
3
+ "version": "2.0.2-alpha.9",
4
4
  "description": "Empowering language to transform human words into action.",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",