@jarvis-agent/core 0.2.1 → 0.2.3

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.
@@ -1,13 +1,13 @@
1
1
  import { AgentContext } from "./agent-context";
2
2
  import { RetryLanguageModel } from "../llm";
3
3
  import { Tool, ToolResult, LLMRequest, DialogueTool, HumanCallback, AgentStreamCallback } from "../types";
4
- import { LanguageModelV2Prompt, LanguageModelV2TextPart, SharedV2ProviderOptions, LanguageModelV2ToolChoice, LanguageModelV2ToolCallPart, LanguageModelV2FunctionTool, LanguageModelV2ToolResultPart } from "@ai-sdk/provider";
4
+ import { LanguageModelV2Prompt, LanguageModelV2TextPart, LanguageModelV2ReasoningPart, SharedV2ProviderOptions, LanguageModelV2ToolChoice, LanguageModelV2ToolCallPart, LanguageModelV2FunctionTool, LanguageModelV2ToolResultPart } from "@ai-sdk/provider";
5
5
  export declare function defaultLLMProviderOptions(): SharedV2ProviderOptions;
6
6
  export declare function defaultMessageProviderOptions(): SharedV2ProviderOptions;
7
7
  export declare function convertTools(tools: Tool[] | DialogueTool[]): LanguageModelV2FunctionTool[];
8
8
  export declare function getTool<T extends Tool | DialogueTool>(tools: T[], name: string): T | null;
9
9
  export declare function convertToolResult(toolUse: LanguageModelV2ToolCallPart, toolResult: ToolResult, user_messages?: LanguageModelV2Prompt): LanguageModelV2ToolResultPart;
10
- export declare function callAgentLLM(agentContext: AgentContext, rlm: RetryLanguageModel, messages: LanguageModelV2Prompt, tools: LanguageModelV2FunctionTool[], noCompress?: boolean, toolChoice?: LanguageModelV2ToolChoice, callback?: AgentStreamCallback & HumanCallback, requestHandler?: (request: LLMRequest) => void): Promise<Array<LanguageModelV2TextPart | LanguageModelV2ToolCallPart>>;
10
+ export declare function callAgentLLM(agentContext: AgentContext, rlm: RetryLanguageModel, messages: LanguageModelV2Prompt, tools: LanguageModelV2FunctionTool[], noCompress?: boolean, toolChoice?: LanguageModelV2ToolChoice, callback?: AgentStreamCallback & HumanCallback, requestHandler?: (request: LLMRequest) => void): Promise<Array<LanguageModelV2TextPart | LanguageModelV2ReasoningPart | LanguageModelV2ToolCallPart>>;
11
11
  export declare function estimatePromptTokens(messages: LanguageModelV2Prompt, tools?: LanguageModelV2FunctionTool[]): number;
12
12
  export declare function estimateTokens(text: string): number;
13
13
  //# sourceMappingURL=agent-llm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-llm.d.ts","sourceRoot":"","sources":["../../src/agent/agent-llm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAW,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAErD,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAE9B,MAAM,kBAAkB,CAAC;AAG1B,wBAAgB,yBAAyB,IAAI,uBAAuB,CAgBnE;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CAYvE;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,GAC7B,2BAA2B,EAAE,CAQ/B;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,IAAI,GAAG,YAAY,EACnD,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,MAAM,GACX,CAAC,GAAG,IAAI,CAOV;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,2BAA2B,EACpC,UAAU,EAAE,UAAU,EACtB,aAAa,CAAC,EAAE,qBAAqB,GACpC,6BAA6B,CAqG/B;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,2BAA2B,EAAE,EACpC,UAAU,CAAC,EAAE,OAAO,EACpB,UAAU,CAAC,EAAE,yBAAyB,EACtC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,aAAa,EAC9C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAC7C,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,2BAA2B,CAAC,CAAC,CAiFvE;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,CAAC,EAAE,2BAA2B,EAAE,UAqDtC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UA2C1C"}
1
+ {"version":3,"file":"agent-llm.d.ts","sourceRoot":"","sources":["../../src/agent/agent-llm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAW,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAErD,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAE9B,MAAM,kBAAkB,CAAC;AAG1B,wBAAgB,yBAAyB,IAAI,uBAAuB,CAgBnE;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CAYvE;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,GAC7B,2BAA2B,EAAE,CAQ/B;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,IAAI,GAAG,YAAY,EACnD,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,MAAM,GACX,CAAC,GAAG,IAAI,CAOV;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,2BAA2B,EACpC,UAAU,EAAE,UAAU,EACtB,aAAa,CAAC,EAAE,qBAAqB,GACpC,6BAA6B,CAqG/B;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,2BAA2B,EAAE,EACpC,UAAU,CAAC,EAAE,OAAO,EACpB,UAAU,CAAC,EAAE,yBAAyB,EACtC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,aAAa,EAC9C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAC7C,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,4BAA4B,GAAG,2BAA2B,CAAC,CAAC,CAiFtG;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,CAAC,EAAE,2BAA2B,EAAE,UAqDtC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UA2C1C"}
@@ -1,6 +1,6 @@
1
1
  import { AgentChain } from "./chain";
2
2
  import { Tool, IMcpClient, LLMRequest, ToolResult, ToolExecuter, WorkflowAgent, HumanCallback, AgentStreamCallback } from "../types";
3
- import { LanguageModelV2Prompt, LanguageModelV2FilePart, LanguageModelV2TextPart, LanguageModelV2ToolCallPart, LanguageModelV2ToolResultPart } from "@ai-sdk/provider";
3
+ import { LanguageModelV2Prompt, LanguageModelV2FilePart, LanguageModelV2TextPart, LanguageModelV2ReasoningPart, LanguageModelV2ToolCallPart, LanguageModelV2ToolResultPart } from "@ai-sdk/provider";
4
4
  import TaskContext, { AgentContext } from "./agent-context";
5
5
  export type AgentParams = {
6
6
  name: string;
@@ -25,7 +25,7 @@ export declare class Agent {
25
25
  constructor(params: AgentParams);
26
26
  run(context: TaskContext, agentChain: AgentChain): Promise<string>;
27
27
  runWithContext(agentContext: AgentContext, mcpClients?: IMcpClient | IMcpClient[], maxReactNum?: number, historyMessages?: LanguageModelV2Prompt): Promise<string>;
28
- protected handleCallResult(agentContext: AgentContext, messages: LanguageModelV2Prompt, agentTools: Tool[], results: Array<LanguageModelV2TextPart | LanguageModelV2ToolCallPart>): Promise<string | null>;
28
+ protected handleCallResult(agentContext: AgentContext, messages: LanguageModelV2Prompt, agentTools: Tool[], results: Array<LanguageModelV2TextPart | LanguageModelV2ReasoningPart | LanguageModelV2ToolCallPart>): Promise<string | null>;
29
29
  protected callToolCall(agentContext: AgentContext, agentTools: Tool[], result: LanguageModelV2ToolCallPart, user_messages?: LanguageModelV2Prompt): Promise<LanguageModelV2ToolResultPart>;
30
30
  protected system_auto_tools(agentNode: WorkflowAgent, agentContext: AgentContext): Tool[];
31
31
  protected buildSystemPrompt(agentContext: AgentContext, tools: Tool[]): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agent/base.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAa,MAAM,SAAS,CAAC;AAQhD,OAAO,EACL,IAAI,EAEJ,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAS1B,OAAO,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK5D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,qBAAa,KAAK;IAChB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAM;IAC7B,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;IACnC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,aAAa,CAAC;IACzD,SAAS,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;gBAE1B,MAAM,EAAE,WAAW;IAUlB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBlE,cAAc,CACzB,YAAY,EAAE,YAAY,EAC1B,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,EACtC,WAAW,GAAE,MAAY,EACzB,eAAe,GAAE,qBAA0B,GAC1C,OAAO,CAAC,MAAM,CAAC;cAyGF,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,IAAI,EAAE,EAClB,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG,2BAA2B,CAAC,GACpE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;cA0DT,YAAY,CAC1B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,IAAI,EAAE,EAClB,MAAM,EAAE,2BAA2B,EACnC,aAAa,GAAE,qBAA0B,GACxC,OAAO,CAAC,6BAA6B,CAAC;IA0DzC,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,YAAY,GACzB,IAAI,EAAE;cAoCO,iBAAiB,CAC/B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,MAAM,CAAC;cAUF,eAAe,CAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,CAAC;cAcpD,YAAY,CAC1B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,MAAM,CAAC;YAIJ,YAAY;cAmCV,eAAe,CAC7B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QACT,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;IAMF,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY;cAoBzD,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,IAAI,CAAC;cAKA,aAAa,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB9D,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAUtD,OAAO,CAAC,IAAI,EAAE,IAAI;cAIT,YAAY,CAC1B,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,cAAc,EAC1C,MAAM,CAAC,EAAE,MAAM;IAOV,oBAAoB,CACzB,SAAS,CAAC,EAAE,2BAA2B,EAAE,GACxC,OAAO;IAIV,IAAI,IAAI,IAAI,MAAM,EAAE,GAAG,SAAS,CAE/B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED,IAAI,eAAe,uBAElB;IAED,IAAI,UAAU,IAAI,UAAU,EAAE,CAE7B;IAED,IAAI,SAAS,IAAI,UAAU,GAAG,SAAS,CAEtC;IAED,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAE3C;CACF"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agent/base.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-dom-tree.d.ts","sourceRoot":"","sources":["../../../src/agent/browser/build-dom-tree.ts"],"names":[],"mappings":"AACA,wBAAgB,kBAAkB,SAoxBjC"}
1
+ {"version":3,"file":"build-dom-tree.d.ts","sourceRoot":"","sources":["../../../src/agent/browser/build-dom-tree.ts"],"names":[],"mappings":"AACA,wBAAgB,kBAAkB,SAksBjC"}
@@ -1,4 +1,4 @@
1
- import { EkoMessage, DialogueTool, DialogueParams, EkoDialogueConfig, EkoMessageUserPart, ChatStreamCallback, LanguageModelV2TextPart, LanguageModelV2ToolCallPart } from "../types";
1
+ import { EkoMessage, DialogueTool, DialogueParams, EkoDialogueConfig, EkoMessageUserPart, ChatStreamCallback, LanguageModelV2TextPart, LanguageModelV2ReasoningPart, LanguageModelV2ToolCallPart } from "../types";
2
2
  import { EkoMemory } from "../memory/memory";
3
3
  import { ChatContext } from "./chat-context";
4
4
  export declare class ChatAgent {
@@ -16,6 +16,6 @@ export declare class ChatAgent {
16
16
  getMemory(): EkoMemory;
17
17
  getTools(): DialogueTool[];
18
18
  getChatContext(): ChatContext;
19
- protected handleCallResult(messageId: string, chatTools: DialogueTool[], results: Array<LanguageModelV2TextPart | LanguageModelV2ToolCallPart>, chatStreamCallback?: ChatStreamCallback): Promise<string | null>;
19
+ protected handleCallResult(messageId: string, chatTools: DialogueTool[], results: Array<LanguageModelV2TextPart | LanguageModelV2ReasoningPart | LanguageModelV2ToolCallPart>, chatStreamCallback?: ChatStreamCallback): Promise<string | null>;
20
20
  }
21
21
  //# sourceMappingURL=chat-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-agent.d.ts","sourceRoot":"","sources":["../../src/chat/chat-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,EAE5B,MAAM,UAAU,CAAC;AASlB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAS7C,qBAAa,SAAS;IACpB,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAChC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAM;gBAGrC,MAAM,EAAE,iBAAiB,EACzB,MAAM,GAAE,MAA2B,EACnC,MAAM,CAAC,EAAE,SAAS,EAClB,KAAK,CAAC,EAAE,YAAY,EAAE;IAQX,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAsE7C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAe1B,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,YAAY,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC;cAsCA,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,EAAE,GACzB,OAAO,CAAC,UAAU,CAAC;cAWN,WAAW,CACzB,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,GAAE,OAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAUhB,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,EAAE;IAc1D,SAAS,IAAI,SAAS;IAItB,QAAQ,IAAI,YAAY,EAAE;IAI1B,cAAc,IAAI,WAAW;cAIpB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,YAAY,EAAE,EACzB,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG,2BAA2B,CAAC,EACrE,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAyE1B"}
1
+ {"version":3,"file":"chat-agent.d.ts","sourceRoot":"","sources":["../../src/chat/chat-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAE5B,MAAM,UAAU,CAAC;AASlB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAS7C,qBAAa,SAAS;IACpB,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAChC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAM;gBAGrC,MAAM,EAAE,iBAAiB,EACzB,MAAM,GAAE,MAA2B,EACnC,MAAM,CAAC,EAAE,SAAS,EAClB,KAAK,CAAC,EAAE,YAAY,EAAE;IAQX,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAsE7C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAe1B,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,YAAY,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC;cAsCA,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,EAAE,GACzB,OAAO,CAAC,UAAU,CAAC;cAWN,WAAW,CACzB,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,GAAE,OAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAUhB,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,EAAE;IAc1D,SAAS,IAAI,SAAS;IAItB,QAAQ,IAAI,YAAY,EAAE;IAI1B,cAAc,IAAI,WAAW;cAIpB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,YAAY,EAAE,EACzB,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG,4BAA4B,GAAG,2BAA2B,CAAC,EACpG,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA4E1B"}
@@ -1,8 +1,8 @@
1
1
  import { LanguageModelV2FilePart, LanguageModelV2ToolResultPart } from "@ai-sdk/provider";
2
- import { ChatStreamCallback, EkoMessageToolPart, EkoMessageUserPart, LanguageModelV2Prompt, EkoMessageAssistantPart, LanguageModelV2TextPart, LanguageModelV2ToolChoice, LanguageModelV2ToolCallPart, LanguageModelV2FunctionTool } from "../types";
2
+ import { ChatStreamCallback, EkoMessageToolPart, EkoMessageUserPart, LanguageModelV2Prompt, EkoMessageAssistantPart, LanguageModelV2TextPart, LanguageModelV2ReasoningPart, LanguageModelV2ToolChoice, LanguageModelV2ToolCallPart, LanguageModelV2FunctionTool } from "../types";
3
3
  import { RetryLanguageModel } from "../llm";
4
- export declare function callChatLLM(chatId: string, messageId: string, rlm: RetryLanguageModel, messages: LanguageModelV2Prompt, tools: LanguageModelV2FunctionTool[], toolChoice?: LanguageModelV2ToolChoice, callback?: ChatStreamCallback, signal?: AbortSignal): Promise<Array<LanguageModelV2TextPart | LanguageModelV2ToolCallPart>>;
5
- export declare function convertAssistantToolResults(results: Array<LanguageModelV2TextPart | LanguageModelV2ToolCallPart>): EkoMessageAssistantPart[];
4
+ export declare function callChatLLM(chatId: string, messageId: string, rlm: RetryLanguageModel, messages: LanguageModelV2Prompt, tools: LanguageModelV2FunctionTool[], toolChoice?: LanguageModelV2ToolChoice, callback?: ChatStreamCallback, signal?: AbortSignal): Promise<Array<LanguageModelV2TextPart | LanguageModelV2ReasoningPart | LanguageModelV2ToolCallPart>>;
5
+ export declare function convertAssistantToolResults(results: Array<LanguageModelV2TextPart | LanguageModelV2ReasoningPart | LanguageModelV2ToolCallPart>): EkoMessageAssistantPart[];
6
6
  export declare function convertToolResults(toolResults: LanguageModelV2ToolResultPart[]): EkoMessageToolPart[];
7
7
  export declare function convertUserContent(content: Array<LanguageModelV2TextPart | LanguageModelV2FilePart>): EkoMessageUserPart[];
8
8
  //# sourceMappingURL=chat-llm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-llm.d.ts","sourceRoot":"","sources":["../../src/chat/chat-llm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAW,MAAM,QAAQ,CAAC;AAErD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,2BAA2B,EAAE,EACpC,UAAU,CAAC,EAAE,yBAAyB,EACtC,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,2BAA2B,CAAC,CAAC,CAkBvE;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG,2BAA2B,CAAC,GACpE,uBAAuB,EAAE,CAqB3B;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,6BAA6B,EAAE,GAC3C,kBAAkB,EAAE,CA0BtB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,GAChE,kBAAkB,EAAE,CAgBtB"}
1
+ {"version":3,"file":"chat-llm.d.ts","sourceRoot":"","sources":["../../src/chat/chat-llm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAW,MAAM,QAAQ,CAAC;AAErD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,2BAA2B,EAAE,EACpC,UAAU,CAAC,EAAE,yBAAyB,EACtC,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,4BAA4B,GAAG,2BAA2B,CAAC,CAAC,CAkBtG;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG,4BAA4B,GAAG,2BAA2B,CAAC,GACnG,uBAAuB,EAAE,CAqB3B;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,6BAA6B,EAAE,GAC3C,kBAAkB,EAAE,CA0BtB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,GAChE,kBAAkB,EAAE,CAgBtB"}
package/dist/index.cjs CHANGED
@@ -39468,12 +39468,13 @@ async function callLLM(rlm, request, streamCallback, errorHandler, finishHandler
39468
39468
  await errorHandler(request, e, retryNum);
39469
39469
  }
39470
39470
  Log.warn("callLLM abort error: ", e);
39471
- return streamText
39472
- ? [
39473
- { type: "text", text: streamText },
39474
- ...toolParts,
39475
- ]
39476
- : toolParts;
39471
+ const parts = [];
39472
+ if (thinkText)
39473
+ parts.push({ type: "reasoning", text: thinkText });
39474
+ if (streamText)
39475
+ parts.push({ type: "text", text: streamText });
39476
+ parts.push(...toolParts);
39477
+ return parts;
39477
39478
  }
39478
39479
  else {
39479
39480
  if (retryNum < exports.config.maxRetryNum) {
@@ -39489,30 +39490,34 @@ async function callLLM(rlm, request, streamCallback, errorHandler, finishHandler
39489
39490
  finally {
39490
39491
  reader && reader.releaseLock();
39491
39492
  }
39492
- return streamText
39493
- ? [
39494
- { type: "text", text: streamText },
39495
- ...toolParts,
39496
- ]
39497
- : toolParts;
39493
+ const resultParts = [];
39494
+ if (thinkText)
39495
+ resultParts.push({ type: "reasoning", text: thinkText });
39496
+ if (streamText)
39497
+ resultParts.push({ type: "text", text: streamText });
39498
+ resultParts.push(...toolParts);
39499
+ return resultParts;
39498
39500
  }
39499
39501
  function convertAssistantContent(assistantParts) {
39500
39502
  return assistantParts
39501
- .filter((part) => part.type == "text" || part.type == "tool-call")
39502
- .map((part) => part.type === "text"
39503
- ? {
39504
- type: "text",
39505
- text: part.text,
39503
+ .filter((part) => part.type === "text" || part.type === "reasoning" || part.type === "tool-call")
39504
+ .map((part) => {
39505
+ if (part.type === "text") {
39506
+ return { type: "text", text: part.text };
39507
+ }
39508
+ if (part.type === "reasoning") {
39509
+ return { type: "reasoning", text: part.text };
39506
39510
  }
39507
- : {
39511
+ return {
39508
39512
  type: "tool-call",
39509
39513
  toolCallId: part.toolCallId,
39510
39514
  toolName: part.toolName,
39511
- input: typeof part.input == "string"
39515
+ input: typeof part.input === "string"
39512
39516
  ? JSON.parse(part.input || "{}")
39513
39517
  : part.input || {},
39514
39518
  providerOptions: part.providerOptions,
39515
- });
39519
+ };
39520
+ });
39516
39521
  }
39517
39522
 
39518
39523
  const global = {
@@ -41634,8 +41639,8 @@ class Agent {
41634
41639
  if (results.length == 0) {
41635
41640
  return null;
41636
41641
  }
41637
- if (results.every((s) => s.type == "text")) {
41638
- return results.map((s) => s.text).join("\n\n");
41642
+ if (results.every((s) => s.type === "text" || s.type === "reasoning")) {
41643
+ return results.filter((s) => s.type === "text").map((s) => s.text).join("\n\n");
41639
41644
  }
41640
41645
  const toolCalls = results.filter((s) => s.type == "tool-call");
41641
41646
  if (toolCalls.length > 1 &&
@@ -42557,30 +42562,19 @@ function run_build_dom_tree() {
42557
42562
  /**
42558
42563
  * Get clickable elements on the page
42559
42564
  *
42560
- * @param {*} markHighlightElements Is mark highlighted
42565
+ * @param {*} doHighlightElements Is highlighted
42561
42566
  * @param {*} includeAttributes [attr_names...]
42562
- * @returns { element_str, client_rect, selector_map, area_map }
42567
+ * @returns { element_str, selector_map }
42563
42568
  */
42564
- function get_clickable_elements(markHighlightElements = true, includeAttributes) {
42569
+ function get_clickable_elements(doHighlightElements = true, includeAttributes) {
42565
42570
  window.clickable_elements = {};
42566
42571
  computedStyleCache = new WeakMap();
42567
42572
  document.querySelectorAll("[eko-user-highlight-id]").forEach(ele => ele.removeAttribute("eko-user-highlight-id"));
42568
- let page_tree = build_dom_tree(markHighlightElements);
42573
+ let page_tree = build_dom_tree(doHighlightElements);
42569
42574
  let element_tree = parse_node(page_tree);
42575
+ let selector_map = create_selector_map(element_tree);
42570
42576
  let element_str = clickable_elements_to_string(element_tree, includeAttributes);
42571
- let client_rect = {
42572
- width: window.innerWidth || document.documentElement.clientWidth,
42573
- height: window.innerHeight || document.documentElement.clientHeight,
42574
- };
42575
- if (markHighlightElements) {
42576
- let selector_map = {};
42577
- // selector_map = create_selector_map(element_tree);
42578
- return { element_str, client_rect, selector_map };
42579
- }
42580
- else {
42581
- let area_map = create_area_map(element_tree);
42582
- return { element_str, client_rect, area_map };
42583
- }
42577
+ return { element_str, selector_map };
42584
42578
  }
42585
42579
  function get_highlight_element(highlightIndex) {
42586
42580
  let element = document.querySelector(`[eko-user-highlight-id="eko-highlight-${highlightIndex}"]`);
@@ -42679,13 +42673,12 @@ function run_build_dom_tree() {
42679
42673
  process_node(element_tree);
42680
42674
  return formatted_text.join('\n');
42681
42675
  }
42682
- function create_area_map(element_tree) {
42683
- let area_map = {};
42676
+ function create_selector_map(element_tree) {
42677
+ let selector_map = {};
42684
42678
  function process_node(node) {
42685
42679
  if (node.tagName) {
42686
42680
  if (node.highlightIndex != null) {
42687
- const element = window.clickable_elements[node.highlightIndex];
42688
- area_map[node.highlightIndex] = get_element_real_bounding_rect(element);
42681
+ selector_map[node.highlightIndex] = node;
42689
42682
  }
42690
42683
  for (let i = 0; i < node.children.length; i++) {
42691
42684
  process_node(node.children[i]);
@@ -42693,38 +42686,7 @@ function run_build_dom_tree() {
42693
42686
  }
42694
42687
  }
42695
42688
  process_node(element_tree);
42696
- return area_map;
42697
- }
42698
- function get_element_real_bounding_rect(element) {
42699
- if (!element || !(element instanceof Element)) {
42700
- return { x: 0, y: 0, width: 0, height: 0 };
42701
- }
42702
- let rect = element.getBoundingClientRect();
42703
- let x = rect.left;
42704
- let y = rect.top;
42705
- let width = rect.width;
42706
- let height = rect.height;
42707
- let win = element.ownerDocument.defaultView;
42708
- let maxDepth = 10;
42709
- let depth = 0;
42710
- while (win && win !== win.parent && depth < maxDepth) {
42711
- depth++;
42712
- const frameElement = win.frameElement;
42713
- if (!frameElement) {
42714
- break;
42715
- }
42716
- const frameRect = frameElement.getBoundingClientRect();
42717
- x += frameRect.left;
42718
- y += frameRect.top;
42719
- // Consider the border and padding of the iframe.
42720
- const frameStyle = getCachedComputedStyle(frameElement);
42721
- x += parseFloat(frameStyle.borderLeftWidth) || 0;
42722
- y += parseFloat(frameStyle.borderTopWidth) || 0;
42723
- x += parseFloat(frameStyle.paddingLeft) || 0;
42724
- y += parseFloat(frameStyle.paddingTop) || 0;
42725
- win = win.parent;
42726
- }
42727
- return { x, y, width, height };
42689
+ return selector_map;
42728
42690
  }
42729
42691
  function parse_node(node_data, parent) {
42730
42692
  if (!node_data) {
@@ -42764,9 +42726,8 @@ function run_build_dom_tree() {
42764
42726
  }
42765
42727
  return element_node;
42766
42728
  }
42767
- function build_dom_tree(markHighlightElements) {
42729
+ function build_dom_tree(doHighlightElements) {
42768
42730
  let highlightIndex = 0; // Reset highlight index
42769
- let duplicates = new Set();
42770
42731
  function highlightElement(element, index, parentIframe = null) {
42771
42732
  // Create or get highlight container
42772
42733
  let container = document.getElementById('eko-highlight-container');
@@ -42965,36 +42926,13 @@ function run_build_dom_tree() {
42965
42926
  interactiveRoles.has(ariaRole) ||
42966
42927
  (tabIndex !== null && tabIndex !== '-1') ||
42967
42928
  element.getAttribute('data-action') === 'a-dropdown-select' ||
42968
- element.getAttribute('data-action') === 'a-dropdown-button' ||
42969
- element.getAttribute('contenteditable') === 'true';
42929
+ element.getAttribute('data-action') === 'a-dropdown-button';
42970
42930
  if (hasInteractiveRole)
42971
42931
  return true;
42972
- // const eventTypes = [
42973
- // 'click',
42974
- // 'mousedown',
42975
- // 'mouseup',
42976
- // 'touchstart',
42977
- // 'touchend',
42978
- // 'keydown',
42979
- // 'keyup',
42980
- // 'focus',
42981
- // 'blur',
42982
- // ];
42983
- const clickEventTypes = [
42984
- 'click',
42985
- 'mousedown',
42986
- 'mouseup',
42987
- 'touchstart',
42988
- 'touchend',
42989
- ];
42990
- // Filter elements that have no real event listeners at all
42991
- if (window.getEventListeners) {
42992
- const listeners = window.getEventListeners(element);
42993
- const hasRealClickListeners = clickEventTypes.some((type) => listeners[type]?.length > 0);
42994
- if (!hasRealClickListeners) {
42995
- return false;
42996
- }
42997
- }
42932
+ // Get computed style
42933
+ const style = getCachedComputedStyle(element);
42934
+ // Check if element has click-like styling
42935
+ const hasClickStyling = style.cursor === 'pointer' || element.style.cursor === 'pointer';
42998
42936
  // Check for event listeners
42999
42937
  const hasClickHandler = element.onclick !== null ||
43000
42938
  element.getAttribute('onclick') !== null ||
@@ -43002,10 +42940,24 @@ function run_build_dom_tree() {
43002
42940
  element.hasAttribute('@click') ||
43003
42941
  element.hasAttribute('v-on:click');
43004
42942
  // Helper function to safely get event listeners
43005
- function getElementEventListeners(el) {
42943
+ function getEventListeners(el) {
42944
+ // if (window.getEventListeners) {
42945
+ // return window.getEventListeners?.(el) || {};
42946
+ // }
43006
42947
  // List of common event types to check
43007
42948
  const listeners = {};
43008
- for (const type of clickEventTypes) {
42949
+ const eventTypes = [
42950
+ 'click',
42951
+ 'mousedown',
42952
+ 'mouseup',
42953
+ 'touchstart',
42954
+ 'touchend',
42955
+ 'keydown',
42956
+ 'keyup',
42957
+ 'focus',
42958
+ 'blur',
42959
+ ];
42960
+ for (const type of eventTypes) {
43009
42961
  const handler = el[`on${type}`];
43010
42962
  if (handler) {
43011
42963
  listeners[type] = [
@@ -43019,34 +42971,30 @@ function run_build_dom_tree() {
43019
42971
  return listeners;
43020
42972
  }
43021
42973
  // Check for click-related events on the element itself
43022
- const listeners = getElementEventListeners(element);
43023
- const hasClickListeners = clickEventTypes.some((type) => listeners[type]?.length > 0);
42974
+ const listeners = getEventListeners(element);
42975
+ const hasClickListeners = listeners &&
42976
+ (listeners.click?.length > 0 ||
42977
+ listeners.mousedown?.length > 0 ||
42978
+ listeners.mouseup?.length > 0 ||
42979
+ listeners.touchstart?.length > 0 ||
42980
+ listeners.touchend?.length > 0);
43024
42981
  // Check for ARIA properties that suggest interactivity
43025
42982
  const hasAriaProps = element.hasAttribute('aria-expanded') ||
43026
42983
  element.hasAttribute('aria-pressed') ||
43027
42984
  element.hasAttribute('aria-selected') ||
43028
42985
  element.hasAttribute('aria-checked');
42986
+ // Check for form-related functionality
42987
+ element.form !== undefined ||
42988
+ element.hasAttribute('contenteditable') ||
42989
+ (style && style.userSelect !== 'none');
43029
42990
  // Check if element is draggable
43030
42991
  const isDraggable = element.draggable || element.getAttribute('draggable') === 'true';
43031
- if (hasAriaProps || hasClickHandler || hasClickListeners || isDraggable) {
43032
- return true;
43033
- }
43034
- // Check if element has click-like styling
43035
- let hasClickStyling = element.style.cursor === 'pointer' || getCachedComputedStyle(element).cursor === 'pointer';
43036
- if (hasClickStyling) {
43037
- let count = 0;
43038
- let current = element.parentElement;
43039
- while (current && current !== document.documentElement) {
43040
- hasClickStyling = current.style.cursor === 'pointer' || getCachedComputedStyle(current).cursor === 'pointer';
43041
- if (hasClickStyling)
43042
- return false;
43043
- current = current.parentElement;
43044
- if (++count > 10)
43045
- break;
43046
- }
43047
- return true;
43048
- }
43049
- return false;
42992
+ return (hasAriaProps ||
42993
+ hasClickStyling ||
42994
+ hasClickHandler ||
42995
+ hasClickListeners ||
42996
+ // isFormRelated ||
42997
+ isDraggable);
43050
42998
  }
43051
42999
  // Helper function to check if element is visible
43052
43000
  function isElementVisible(element) {
@@ -43076,14 +43024,11 @@ function run_build_dom_tree() {
43076
43024
  if (!topEl)
43077
43025
  return false;
43078
43026
  // Check if the element or any of its parents match our target element
43079
- let count = 0;
43080
43027
  let current = topEl;
43081
43028
  while (current && current !== shadowRoot) {
43082
43029
  if (current === element)
43083
43030
  return true;
43084
43031
  current = current.parentElement;
43085
- if (++count > 15)
43086
- break;
43087
43032
  }
43088
43033
  return false;
43089
43034
  }
@@ -43098,14 +43043,11 @@ function run_build_dom_tree() {
43098
43043
  const topEl = document.elementFromPoint(point.x, point.y);
43099
43044
  if (!topEl)
43100
43045
  return false;
43101
- let count = 0;
43102
43046
  let current = topEl;
43103
43047
  while (current && current !== document.documentElement) {
43104
43048
  if (current === element)
43105
43049
  return true;
43106
43050
  current = current.parentElement;
43107
- if (++count > 15)
43108
- break;
43109
43051
  }
43110
43052
  return false;
43111
43053
  }
@@ -43129,10 +43071,8 @@ function run_build_dom_tree() {
43129
43071
  }
43130
43072
  // Function to traverse the DOM and create nested JSON
43131
43073
  function buildDomTree(node, parentIframe = null) {
43132
- if (!node || duplicates.has(node)) {
43074
+ if (!node)
43133
43075
  return null;
43134
- }
43135
- duplicates.add(node);
43136
43076
  // Special case for text nodes
43137
43077
  if (node.nodeType === Node.TEXT_NODE) {
43138
43078
  const textContent = node.textContent.trim();
@@ -43177,7 +43117,7 @@ function run_build_dom_tree() {
43177
43117
  if (shouldHighlight) {
43178
43118
  nodeData.highlightIndex = highlightIndex++;
43179
43119
  window.clickable_elements[nodeData.highlightIndex] = node;
43180
- if (markHighlightElements) {
43120
+ if (doHighlightElements) {
43181
43121
  highlightElement(node, nodeData.highlightIndex, parentIframe);
43182
43122
  }
43183
43123
  }
@@ -43192,7 +43132,7 @@ function run_build_dom_tree() {
43192
43132
  }
43193
43133
  // Handle shadow DOM
43194
43134
  if (node.shadowRoot) {
43195
- const shadowChildren = Array.from(node.shadowRoot.children).map((child) => buildDomTree(child, parentIframe)).filter(child => child !== null);
43135
+ const shadowChildren = Array.from(node.shadowRoot.childNodes).map((child) => buildDomTree(child, parentIframe));
43196
43136
  nodeData.children.push(...shadowChildren);
43197
43137
  }
43198
43138
  // Handle iframes
@@ -43200,7 +43140,7 @@ function run_build_dom_tree() {
43200
43140
  try {
43201
43141
  const iframeDoc = node.contentDocument || node.contentWindow.document;
43202
43142
  if (iframeDoc) {
43203
- const iframeChildren = Array.from(iframeDoc.body.children).map((child) => buildDomTree(child, node)).filter(child => child !== null);
43143
+ const iframeChildren = Array.from(iframeDoc.body.childNodes).map((child) => buildDomTree(child, node));
43204
43144
  nodeData.children.push(...iframeChildren);
43205
43145
  }
43206
43146
  }
@@ -43209,9 +43149,8 @@ function run_build_dom_tree() {
43209
43149
  }
43210
43150
  }
43211
43151
  else {
43212
- const style = getCachedComputedStyle(node);
43213
- if (style && style.display !== 'none') {
43214
- const children = Array.from(node.children).map((child) => buildDomTree(child, parentIframe)).filter(child => child !== null);
43152
+ if (nodeData.isVisible != false) {
43153
+ const children = Array.from(node.childNodes).map((child) => buildDomTree(child, parentIframe));
43215
43154
  nodeData.children.push(...children);
43216
43155
  }
43217
43156
  }
@@ -45257,7 +45196,7 @@ async function callChatLLM(chatId, messageId, rlm, messages, tools, toolChoice,
45257
45196
  });
45258
45197
  }
45259
45198
  function convertAssistantToolResults(results) {
45260
- return results.map((part) => {
45199
+ return results.filter((part) => part.type !== "reasoning").map((part) => {
45261
45200
  if (part.type == "text") {
45262
45201
  return {
45263
45202
  type: "text",
@@ -46007,10 +45946,13 @@ class ChatAgent {
46007
45946
  }
46008
45947
  for (let i = 0; i < results.length; i++) {
46009
45948
  const result = results[i];
46010
- if (result.type == "text") {
45949
+ if (result.type === "text") {
46011
45950
  text = result.text;
46012
45951
  continue;
46013
45952
  }
45953
+ if (result.type === "reasoning") {
45954
+ continue;
45955
+ }
46014
45956
  let toolResult;
46015
45957
  try {
46016
45958
  const args = typeof result.input == "string"