beeai-framework 0.1.20 → 0.1.22
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/dist/adapters/a2a/agents/agent.cjs +4 -4
- package/dist/adapters/a2a/agents/agent.cjs.map +1 -1
- package/dist/adapters/a2a/agents/agent.d.cts +6 -10
- package/dist/adapters/a2a/agents/agent.d.ts +6 -10
- package/dist/adapters/a2a/agents/agent.js +4 -4
- package/dist/adapters/a2a/agents/agent.js.map +1 -1
- package/dist/adapters/a2a/agents/events.d.cts +1 -1
- package/dist/adapters/a2a/agents/events.d.ts +1 -1
- package/dist/adapters/a2a/agents/types.d.cts +2 -2
- package/dist/adapters/a2a/agents/types.d.ts +2 -2
- package/dist/adapters/a2a/agents/utils.cjs +2 -2
- package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
- package/dist/adapters/a2a/agents/utils.js +2 -2
- package/dist/adapters/a2a/agents/utils.js.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.cjs +1 -3
- package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.d.cts +4 -3
- package/dist/adapters/a2a/serve/agent_executor.d.ts +4 -3
- package/dist/adapters/a2a/serve/agent_executor.js +1 -3
- package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
- package/dist/adapters/a2a/serve/server.cjs +15 -0
- package/dist/adapters/a2a/serve/server.cjs.map +1 -1
- package/dist/adapters/a2a/serve/server.d.cts +4 -2
- package/dist/adapters/a2a/serve/server.d.ts +4 -2
- package/dist/adapters/a2a/serve/server.js +15 -0
- package/dist/adapters/a2a/serve/server.js.map +1 -1
- package/dist/adapters/acp/agents/agent.d.cts +6 -10
- package/dist/adapters/acp/agents/agent.d.ts +6 -10
- package/dist/adapters/acp/agents/events.d.cts +1 -1
- package/dist/adapters/acp/agents/events.d.ts +1 -1
- package/dist/adapters/{beeai_platform → agentstack}/agents/agent.cjs +4 -4
- package/dist/adapters/agentstack/agents/agent.cjs.map +1 -0
- package/dist/adapters/{beeai_platform → agentstack}/agents/agent.d.cts +18 -16
- package/dist/adapters/{beeai_platform → agentstack}/agents/agent.d.ts +18 -16
- package/dist/adapters/{beeai_platform → agentstack}/agents/agent.js +4 -4
- package/dist/adapters/agentstack/agents/agent.js.map +1 -0
- package/dist/adapters/agentstack/agents/events.d.cts +23 -0
- package/dist/adapters/agentstack/agents/events.d.ts +23 -0
- package/dist/adapters/{beeai_platform → agentstack}/agents/types.d.cts +4 -4
- package/dist/adapters/{beeai_platform → agentstack}/agents/types.d.ts +4 -4
- package/dist/adapters/amazon-bedrock/backend/chat.cjs +3 -2
- package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.d.cts +5 -6
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +5 -6
- package/dist/adapters/amazon-bedrock/backend/chat.js +3 -2
- package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.cjs +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +4 -4
- package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +4 -4
- package/dist/adapters/amazon-bedrock/backend/embedding.js +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
- package/dist/adapters/anthropic/backend/chat.cjs +3 -2
- package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/chat.d.cts +5 -6
- package/dist/adapters/anthropic/backend/chat.d.ts +5 -6
- package/dist/adapters/anthropic/backend/chat.js +3 -2
- package/dist/adapters/anthropic/backend/chat.js.map +1 -1
- package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
- package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
- package/dist/adapters/azure-openai/backend/chat.cjs +3 -2
- package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.d.cts +5 -6
- package/dist/adapters/azure-openai/backend/chat.d.ts +5 -6
- package/dist/adapters/azure-openai/backend/chat.js +3 -2
- package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.cjs +2 -2
- package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.d.cts +3 -3
- package/dist/adapters/azure-openai/backend/embedding.d.ts +3 -3
- package/dist/adapters/azure-openai/backend/embedding.js +2 -2
- package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
- package/dist/adapters/dummy/backend/chat.d.cts +2 -2
- package/dist/adapters/dummy/backend/chat.d.ts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
- package/dist/adapters/google-vertex/backend/chat.cjs +3 -2
- package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.d.cts +5 -6
- package/dist/adapters/google-vertex/backend/chat.d.ts +5 -6
- package/dist/adapters/google-vertex/backend/chat.js +3 -2
- package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
- package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
- package/dist/adapters/groq/backend/chat.cjs +3 -2
- package/dist/adapters/groq/backend/chat.cjs.map +1 -1
- package/dist/adapters/groq/backend/chat.d.cts +5 -6
- package/dist/adapters/groq/backend/chat.d.ts +5 -6
- package/dist/adapters/groq/backend/chat.js +3 -2
- package/dist/adapters/groq/backend/chat.js.map +1 -1
- package/dist/adapters/groq/backend/embedding.d.cts +2 -2
- package/dist/adapters/groq/backend/embedding.d.ts +2 -2
- package/dist/adapters/langchain/backend/chat.cjs +6 -5
- package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
- package/dist/adapters/langchain/backend/chat.d.cts +2 -2
- package/dist/adapters/langchain/backend/chat.d.ts +2 -2
- package/dist/adapters/langchain/backend/chat.js +6 -5
- package/dist/adapters/langchain/backend/chat.js.map +1 -1
- package/dist/adapters/langchain/backend/embedding.d.cts +3 -3
- package/dist/adapters/langchain/backend/embedding.d.ts +3 -3
- package/dist/adapters/langchain/tools.d.cts +1 -1
- package/dist/adapters/langchain/tools.d.ts +1 -1
- package/dist/adapters/ollama/backend/chat.cjs +1 -4
- package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
- package/dist/adapters/ollama/backend/chat.d.cts +4 -4
- package/dist/adapters/ollama/backend/chat.d.ts +4 -4
- package/dist/adapters/ollama/backend/chat.js +1 -4
- package/dist/adapters/ollama/backend/chat.js.map +1 -1
- package/dist/adapters/ollama/backend/client.cjs +2 -2
- package/dist/adapters/ollama/backend/client.cjs.map +1 -1
- package/dist/adapters/ollama/backend/client.d.cts +1 -1
- package/dist/adapters/ollama/backend/client.d.ts +1 -1
- package/dist/adapters/ollama/backend/client.js +1 -1
- package/dist/adapters/ollama/backend/client.js.map +1 -1
- package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
- package/dist/adapters/ollama/backend/embedding.d.cts +3 -3
- package/dist/adapters/ollama/backend/embedding.d.ts +3 -3
- package/dist/adapters/ollama/backend/embedding.js.map +1 -1
- package/dist/adapters/openai/backend/chat.cjs +3 -2
- package/dist/adapters/openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/openai/backend/chat.d.cts +5 -6
- package/dist/adapters/openai/backend/chat.d.ts +5 -6
- package/dist/adapters/openai/backend/chat.js +3 -2
- package/dist/adapters/openai/backend/chat.js.map +1 -1
- package/dist/adapters/openai/backend/client.cjs +2 -11
- package/dist/adapters/openai/backend/client.cjs.map +1 -1
- package/dist/adapters/openai/backend/client.js +3 -12
- package/dist/adapters/openai/backend/client.js.map +1 -1
- package/dist/adapters/openai/backend/embedding.cjs +2 -2
- package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/openai/backend/embedding.d.cts +4 -4
- package/dist/adapters/openai/backend/embedding.d.ts +4 -4
- package/dist/adapters/openai/backend/embedding.js +2 -2
- package/dist/adapters/openai/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/chat.cjs +26 -21
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.d.cts +6 -4
- package/dist/adapters/vercel/backend/chat.d.ts +6 -4
- package/dist/adapters/vercel/backend/chat.js +27 -22
- package/dist/adapters/vercel/backend/chat.js.map +1 -1
- package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
- package/dist/adapters/vercel/backend/embedding.d.cts +3 -3
- package/dist/adapters/vercel/backend/embedding.d.ts +3 -3
- package/dist/adapters/vercel/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/utils.cjs +26 -0
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +20 -2
- package/dist/adapters/vercel/backend/utils.d.ts +20 -2
- package/dist/adapters/vercel/backend/utils.js +25 -1
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.cjs +10 -4
- package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
- package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
- package/dist/adapters/watsonx/backend/chat.js +10 -4
- package/dist/adapters/watsonx/backend/chat.js.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
- package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
- package/dist/adapters/xai/backend/chat.cjs +3 -2
- package/dist/adapters/xai/backend/chat.cjs.map +1 -1
- package/dist/adapters/xai/backend/chat.d.cts +5 -6
- package/dist/adapters/xai/backend/chat.d.ts +5 -6
- package/dist/adapters/xai/backend/chat.js +3 -2
- package/dist/adapters/xai/backend/chat.js.map +1 -1
- package/dist/{agent-I0Saf4A1.d.cts → agent-BMfyig7X.d.cts} +5 -4
- package/dist/{agent-CtrCeN7o.d.ts → agent-Dxw8AGWb.d.ts} +5 -4
- package/dist/agents/base.cjs +5 -2
- package/dist/agents/base.cjs.map +1 -1
- package/dist/agents/base.d.cts +2 -2
- package/dist/agents/base.d.ts +2 -2
- package/dist/agents/base.js +5 -2
- package/dist/agents/base.js.map +1 -1
- package/dist/agents/experimental/replan/agent.d.cts +3 -3
- package/dist/agents/experimental/replan/agent.d.ts +3 -3
- package/dist/agents/experimental/replan/prompts.d.cts +1 -1
- package/dist/agents/experimental/replan/prompts.d.ts +1 -1
- package/dist/agents/experimental/streamlit/agent.d.cts +8 -12
- package/dist/agents/experimental/streamlit/agent.d.ts +8 -12
- package/dist/agents/react/agent.d.cts +5 -4
- package/dist/agents/react/agent.d.ts +5 -4
- package/dist/agents/react/prompts.d.cts +1 -1
- package/dist/agents/react/prompts.d.ts +1 -1
- package/dist/agents/react/runners/base.cjs.map +1 -1
- package/dist/agents/react/runners/base.d.cts +5 -4
- package/dist/agents/react/runners/base.d.ts +5 -4
- package/dist/agents/react/runners/base.js.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.cts +6 -5
- package/dist/agents/react/runners/deep-think/runner.d.ts +6 -5
- package/dist/agents/react/runners/default/runner.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.d.cts +6 -5
- package/dist/agents/react/runners/default/runner.d.ts +6 -5
- package/dist/agents/react/runners/default/runner.js.map +1 -1
- package/dist/agents/react/runners/granite/prompts.d.cts +1 -1
- package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
- package/dist/agents/react/runners/granite/runner.cjs +4 -2
- package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
- package/dist/agents/react/runners/granite/runner.d.cts +6 -5
- package/dist/agents/react/runners/granite/runner.d.ts +6 -5
- package/dist/agents/react/runners/granite/runner.js +4 -2
- package/dist/agents/react/runners/granite/runner.js.map +1 -1
- package/dist/agents/react/types.d.cts +3 -2
- package/dist/agents/react/types.d.ts +3 -2
- package/dist/agents/requirement/agent.cjs +162 -0
- package/dist/agents/requirement/agent.cjs.map +1 -0
- package/dist/agents/requirement/agent.d.cts +29 -0
- package/dist/agents/requirement/agent.d.ts +29 -0
- package/dist/agents/requirement/agent.js +160 -0
- package/dist/agents/requirement/agent.js.map +1 -0
- package/dist/agents/requirement/prompts.cjs +95 -0
- package/dist/agents/requirement/prompts.cjs.map +1 -0
- package/dist/agents/requirement/prompts.d.cts +107 -0
- package/dist/agents/requirement/prompts.d.ts +107 -0
- package/dist/agents/requirement/prompts.js +90 -0
- package/dist/agents/requirement/prompts.js.map +1 -0
- package/dist/agents/requirement/requirements/conditional.cjs +190 -0
- package/dist/agents/requirement/requirements/conditional.cjs.map +1 -0
- package/dist/agents/requirement/requirements/conditional.d.cts +71 -0
- package/dist/agents/requirement/requirements/conditional.d.ts +71 -0
- package/dist/agents/requirement/requirements/conditional.js +188 -0
- package/dist/agents/requirement/requirements/conditional.js.map +1 -0
- package/dist/agents/requirement/requirements/requirement.cjs +107 -0
- package/dist/agents/requirement/requirements/requirement.cjs.map +1 -0
- package/dist/agents/requirement/requirements/requirement.d.cts +59 -0
- package/dist/agents/requirement/requirements/requirement.d.ts +59 -0
- package/dist/agents/requirement/requirements/requirement.js +104 -0
- package/dist/agents/requirement/requirements/requirement.js.map +1 -0
- package/dist/agents/requirement/requirements/utils.cjs +74 -0
- package/dist/agents/requirement/requirements/utils.cjs.map +1 -0
- package/dist/agents/requirement/requirements/utils.d.cts +40 -0
- package/dist/agents/requirement/requirements/utils.d.ts +40 -0
- package/dist/agents/requirement/requirements/utils.js +69 -0
- package/dist/agents/requirement/requirements/utils.js.map +1 -0
- package/dist/agents/requirement/runner.cjs +252 -0
- package/dist/agents/requirement/runner.cjs.map +1 -0
- package/dist/agents/requirement/runner.d.cts +117 -0
- package/dist/agents/requirement/runner.d.ts +117 -0
- package/dist/agents/requirement/runner.js +250 -0
- package/dist/agents/requirement/runner.js.map +1 -0
- package/dist/agents/requirement/types.cjs +40 -0
- package/dist/agents/requirement/types.cjs.map +1 -0
- package/dist/agents/requirement/types.d.cts +24 -0
- package/dist/agents/requirement/types.d.ts +24 -0
- package/dist/agents/requirement/types.js +35 -0
- package/dist/agents/requirement/types.js.map +1 -0
- package/dist/agents/requirement/utils/llm.cjs +202 -0
- package/dist/agents/requirement/utils/llm.cjs.map +1 -0
- package/dist/agents/requirement/utils/llm.d.cts +50 -0
- package/dist/agents/requirement/utils/llm.d.ts +50 -0
- package/dist/agents/requirement/utils/llm.js +199 -0
- package/dist/agents/requirement/utils/llm.js.map +1 -0
- package/dist/agents/requirement/utils/tool.cjs +94 -0
- package/dist/agents/requirement/utils/tool.cjs.map +1 -0
- package/dist/agents/requirement/utils/tool.d.cts +24 -0
- package/dist/agents/requirement/utils/tool.d.ts +24 -0
- package/dist/agents/requirement/utils/tool.js +91 -0
- package/dist/agents/requirement/utils/tool.js.map +1 -0
- package/dist/agents/requirement/utils/toolCallChecker.cjs +61 -0
- package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -0
- package/dist/agents/requirement/utils/toolCallChecker.d.cts +28 -0
- package/dist/agents/requirement/utils/toolCallChecker.d.ts +28 -0
- package/dist/agents/requirement/utils/toolCallChecker.js +59 -0
- package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -0
- package/dist/agents/toolCalling/agent.cjs +9 -5
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.d.cts +8 -12
- package/dist/agents/toolCalling/agent.d.ts +8 -12
- package/dist/agents/toolCalling/agent.js +9 -5
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/agents/toolCalling/types.d.cts +1 -1
- package/dist/agents/toolCalling/types.d.ts +1 -1
- package/dist/agents/types.d.cts +2 -2
- package/dist/agents/types.d.ts +2 -2
- package/dist/backend/backend.d.cts +2 -2
- package/dist/backend/backend.d.ts +2 -2
- package/dist/backend/chat.cjs +1 -1
- package/dist/backend/chat.cjs.map +1 -1
- package/dist/backend/chat.d.cts +2 -2
- package/dist/backend/chat.d.ts +2 -2
- package/dist/backend/chat.js +1 -1
- package/dist/backend/chat.js.map +1 -1
- package/dist/backend/core.d.cts +2 -2
- package/dist/backend/core.d.ts +2 -2
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/message.cjs +59 -3
- package/dist/backend/message.cjs.map +1 -1
- package/dist/backend/message.d.cts +3 -0
- package/dist/backend/message.d.ts +3 -0
- package/dist/backend/message.js +59 -3
- package/dist/backend/message.js.map +1 -1
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/{base-BsY2baWy.d.ts → base-BurRTBA7.d.ts} +4 -2
- package/dist/{base-BP7v-NSL.d.cts → base-v-PYIq5G.d.cts} +4 -2
- package/dist/cache/fileCache.cjs.map +1 -1
- package/dist/cache/fileCache.js.map +1 -1
- package/dist/{chat-W9j8T6UU.d.ts → chat-BbCYMAdE.d.ts} +4 -2
- package/dist/{chat-CR4yfOR9.d.cts → chat-DB_cf15S.d.cts} +4 -2
- package/dist/context.cjs +22 -5
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +19 -6
- package/dist/context.d.ts +19 -6
- package/dist/context.js +23 -7
- package/dist/context.js.map +1 -1
- package/dist/emitter/emitter.cjs +19 -13
- package/dist/emitter/emitter.cjs.map +1 -1
- package/dist/emitter/emitter.d.cts +1 -1
- package/dist/emitter/emitter.d.ts +1 -1
- package/dist/emitter/emitter.js +19 -13
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/types.d.cts +1 -1
- package/dist/emitter/types.d.ts +1 -1
- package/dist/{emitter-DWEsd-ud.d.cts → emitter-CGKd_-kK.d.cts} +6 -5
- package/dist/{emitter-C9nwGLt6.d.ts → emitter-CN7I4uSV.d.ts} +6 -5
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/internals/fetcher.d.cts +1 -1
- package/dist/internals/fetcher.d.ts +1 -1
- package/dist/internals/helpers/array.cjs +35 -0
- package/dist/internals/helpers/array.cjs.map +1 -1
- package/dist/internals/helpers/array.d.cts +6 -1
- package/dist/internals/helpers/array.d.ts +6 -1
- package/dist/internals/helpers/array.js +35 -1
- package/dist/internals/helpers/array.js.map +1 -1
- package/dist/internals/helpers/object.cjs +30 -5
- package/dist/internals/helpers/object.cjs.map +1 -1
- package/dist/internals/helpers/object.d.cts +3 -2
- package/dist/internals/helpers/object.d.ts +3 -2
- package/dist/internals/helpers/object.js +29 -5
- package/dist/internals/helpers/object.js.map +1 -1
- package/dist/internals/helpers/prototype.cjs +5 -0
- package/dist/internals/helpers/prototype.cjs.map +1 -1
- package/dist/internals/helpers/prototype.d.cts +2 -1
- package/dist/internals/helpers/prototype.d.ts +2 -1
- package/dist/internals/helpers/prototype.js +5 -1
- package/dist/internals/helpers/prototype.js.map +1 -1
- package/dist/internals/types.cjs.map +1 -1
- package/dist/internals/types.d.cts +1 -1
- package/dist/internals/types.d.ts +1 -1
- package/dist/internals/types.js.map +1 -1
- package/dist/logger/logger.cjs +8 -4
- package/dist/logger/logger.cjs.map +1 -1
- package/dist/logger/logger.d.cts +21 -15
- package/dist/logger/logger.d.ts +21 -15
- package/dist/logger/logger.js +6 -3
- package/dist/logger/logger.js.map +1 -1
- package/dist/logger/pretty.cjs +2 -2
- package/dist/logger/pretty.cjs.map +1 -1
- package/dist/logger/pretty.js +2 -2
- package/dist/logger/pretty.js.map +1 -1
- package/dist/memory/slidingMemory.d.cts +1 -1
- package/dist/memory/slidingMemory.d.ts +1 -1
- package/dist/memory/summarizeMemory.d.cts +2 -2
- package/dist/memory/summarizeMemory.d.ts +2 -2
- package/dist/middleware/trajectory.cjs +322 -0
- package/dist/middleware/trajectory.cjs.map +1 -0
- package/dist/middleware/trajectory.d.cts +115 -0
- package/dist/middleware/trajectory.d.ts +115 -0
- package/dist/middleware/trajectory.js +320 -0
- package/dist/middleware/trajectory.js.map +1 -0
- package/dist/parsers/linePrefix.cjs.map +1 -1
- package/dist/parsers/linePrefix.d.cts +4 -8
- package/dist/parsers/linePrefix.d.ts +4 -8
- package/dist/parsers/linePrefix.js.map +1 -1
- package/dist/serializer/serializer.cjs +5 -4
- package/dist/serializer/serializer.cjs.map +1 -1
- package/dist/serializer/serializer.d.cts +1 -1
- package/dist/serializer/serializer.d.ts +1 -1
- package/dist/serializer/serializer.js +5 -4
- package/dist/serializer/serializer.js.map +1 -1
- package/dist/serializer/utils.cjs +3 -0
- package/dist/serializer/utils.cjs.map +1 -1
- package/dist/serializer/utils.d.cts +1 -1
- package/dist/serializer/utils.d.ts +1 -1
- package/dist/serializer/utils.js +3 -0
- package/dist/serializer/utils.js.map +1 -1
- package/dist/{serializer-CQxucveV.d.ts → serializer-53t8gGQa.d.ts} +3 -2
- package/dist/{serializer-BKn50Vnx.d.cts → serializer-c51B2z6d.d.cts} +3 -2
- package/dist/template.cjs +20 -0
- package/dist/template.cjs.map +1 -1
- package/dist/template.d.cts +1 -0
- package/dist/template.d.ts +1 -0
- package/dist/template.js +20 -0
- package/dist/template.js.map +1 -1
- package/dist/tools/arxiv.cjs.map +1 -1
- package/dist/tools/arxiv.d.cts +1 -1
- package/dist/tools/arxiv.d.ts +1 -1
- package/dist/tools/arxiv.js.map +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.d.cts +3 -2
- package/dist/tools/base.d.ts +3 -2
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/calculator.d.cts +1 -1
- package/dist/tools/calculator.d.ts +1 -1
- package/dist/tools/custom.d.cts +2 -2
- package/dist/tools/custom.d.ts +2 -2
- package/dist/tools/database/elasticsearch.cjs.map +1 -1
- package/dist/tools/database/elasticsearch.d.cts +1 -1
- package/dist/tools/database/elasticsearch.d.ts +1 -1
- package/dist/tools/database/elasticsearch.js.map +1 -1
- package/dist/tools/database/milvus.cjs +3 -3
- package/dist/tools/database/milvus.cjs.map +1 -1
- package/dist/tools/database/milvus.d.cts +3 -3
- package/dist/tools/database/milvus.d.ts +3 -3
- package/dist/tools/database/milvus.js +3 -3
- package/dist/tools/database/milvus.js.map +1 -1
- package/dist/tools/database/qdrant.cjs +2 -2
- package/dist/tools/database/qdrant.cjs.map +1 -1
- package/dist/tools/database/qdrant.d.cts +1 -1
- package/dist/tools/database/qdrant.d.ts +1 -1
- package/dist/tools/database/qdrant.js +2 -2
- package/dist/tools/database/qdrant.js.map +1 -1
- package/dist/tools/database/sql.cjs.map +1 -1
- package/dist/tools/database/sql.d.cts +1 -1
- package/dist/tools/database/sql.d.ts +1 -1
- package/dist/tools/database/sql.js.map +1 -1
- package/dist/tools/llm.d.cts +2 -2
- package/dist/tools/llm.d.ts +2 -2
- package/dist/tools/mcp.d.cts +1 -1
- package/dist/tools/mcp.d.ts +1 -1
- package/dist/tools/openapi.d.cts +1 -1
- package/dist/tools/openapi.d.ts +1 -1
- package/dist/tools/python/output.d.cts +1 -1
- package/dist/tools/python/output.d.ts +1 -1
- package/dist/tools/python/python.d.cts +2 -2
- package/dist/tools/python/python.d.ts +2 -2
- package/dist/tools/search/base.cjs.map +1 -1
- package/dist/tools/search/base.d.cts +1 -1
- package/dist/tools/search/base.d.ts +1 -1
- package/dist/tools/search/base.js.map +1 -1
- package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.cts +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.ts +1 -1
- package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
- package/dist/tools/search/googleSearch.cjs.map +1 -1
- package/dist/tools/search/googleSearch.d.cts +1 -1
- package/dist/tools/search/googleSearch.d.ts +1 -1
- package/dist/tools/search/googleSearch.js.map +1 -1
- package/dist/tools/search/searXNGSearch.d.cts +1 -1
- package/dist/tools/search/searXNGSearch.d.ts +1 -1
- package/dist/tools/search/wikipedia.cjs +25 -0
- package/dist/tools/search/wikipedia.cjs.map +1 -1
- package/dist/tools/search/wikipedia.d.cts +2 -3
- package/dist/tools/search/wikipedia.d.ts +2 -3
- package/dist/tools/search/wikipedia.js +23 -0
- package/dist/tools/search/wikipedia.js.map +1 -1
- package/dist/tools/similarity.d.cts +1 -1
- package/dist/tools/similarity.d.ts +1 -1
- package/dist/tools/think.cjs +52 -0
- package/dist/tools/think.cjs.map +1 -0
- package/dist/tools/think.d.cts +47 -0
- package/dist/tools/think.d.ts +47 -0
- package/dist/tools/think.js +50 -0
- package/dist/tools/think.js.map +1 -0
- package/dist/tools/weather/openMeteo.cjs.map +1 -1
- package/dist/tools/weather/openMeteo.d.cts +1 -1
- package/dist/tools/weather/openMeteo.d.ts +1 -1
- package/dist/tools/weather/openMeteo.js.map +1 -1
- package/dist/tools/web/webCrawler.cjs.map +1 -1
- package/dist/tools/web/webCrawler.d.cts +1 -1
- package/dist/tools/web/webCrawler.d.ts +1 -1
- package/dist/tools/web/webCrawler.js.map +1 -1
- package/dist/types-BXkkbABd.d.ts +213 -0
- package/dist/types-Cx6f43du.d.cts +213 -0
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/workflows/agent.d.cts +3 -3
- package/dist/workflows/agent.d.ts +3 -3
- package/dist/workflows/workflow.d.cts +1 -1
- package/dist/workflows/workflow.d.ts +1 -1
- package/package.json +70 -69
- package/dist/adapters/beeai_platform/agents/agent.cjs.map +0 -1
- package/dist/adapters/beeai_platform/agents/agent.js.map +0 -1
- package/dist/adapters/beeai_platform/agents/events.d.cts +0 -23
- package/dist/adapters/beeai_platform/agents/events.d.ts +0 -23
- /package/dist/adapters/{beeai_platform → agentstack}/agents/events.cjs +0 -0
- /package/dist/adapters/{beeai_platform → agentstack}/agents/events.cjs.map +0 -0
- /package/dist/adapters/{beeai_platform → agentstack}/agents/events.js +0 -0
- /package/dist/adapters/{beeai_platform → agentstack}/agents/events.js.map +0 -0
- /package/dist/adapters/{beeai_platform → agentstack}/agents/types.cjs +0 -0
- /package/dist/adapters/{beeai_platform → agentstack}/agents/types.cjs.map +0 -0
- /package/dist/adapters/{beeai_platform → agentstack}/agents/types.js +0 -0
- /package/dist/adapters/{beeai_platform → agentstack}/agents/types.js.map +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
class ToolCallChecker {
|
|
6
|
+
static {
|
|
7
|
+
__name(this, "ToolCallChecker");
|
|
8
|
+
}
|
|
9
|
+
config;
|
|
10
|
+
strikeHistory = [];
|
|
11
|
+
occurrencesHistory = [];
|
|
12
|
+
cycleFound = false;
|
|
13
|
+
enabled = true;
|
|
14
|
+
constructor(config = {}) {
|
|
15
|
+
this.config = {
|
|
16
|
+
maxStrikeLength: config.maxStrikeLength ?? 1,
|
|
17
|
+
maxTotalOccurrences: config.maxTotalOccurrences ?? 5,
|
|
18
|
+
windowSize: config.windowSize ?? 10
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
register(value) {
|
|
22
|
+
if (!this.enabled) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const lastCall = this.strikeHistory.at(-1);
|
|
26
|
+
if (lastCall && this.isSameToolCall(lastCall, value)) {
|
|
27
|
+
this.strikeHistory.push(value);
|
|
28
|
+
if (this.strikeHistory.length > this.config.maxStrikeLength) {
|
|
29
|
+
this.cycleFound = true;
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
this.strikeHistory = [
|
|
33
|
+
value
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
this.occurrencesHistory.push(value);
|
|
37
|
+
if (this.occurrencesHistory.length > this.config.windowSize) {
|
|
38
|
+
this.occurrencesHistory.shift();
|
|
39
|
+
}
|
|
40
|
+
const occurrences = this.occurrencesHistory.filter((call) => this.isSameToolCall(call, value)).length;
|
|
41
|
+
if (occurrences > this.config.maxTotalOccurrences) {
|
|
42
|
+
this.cycleFound = true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
reset(current) {
|
|
46
|
+
this.strikeHistory = current ? [
|
|
47
|
+
current
|
|
48
|
+
] : [];
|
|
49
|
+
this.occurrencesHistory = current ? [
|
|
50
|
+
current
|
|
51
|
+
] : [];
|
|
52
|
+
this.cycleFound = false;
|
|
53
|
+
}
|
|
54
|
+
isSameToolCall(a, b) {
|
|
55
|
+
return a.toolName === b.toolName && JSON.stringify(a.input) === JSON.stringify(b.input);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
exports.ToolCallChecker = ToolCallChecker;
|
|
60
|
+
//# sourceMappingURL=toolCallChecker.cjs.map
|
|
61
|
+
//# sourceMappingURL=toolCallChecker.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/utils/toolCallChecker.ts"],"names":["ToolCallChecker","config","strikeHistory","occurrencesHistory","cycleFound","enabled","maxStrikeLength","maxTotalOccurrences","windowSize","register","value","lastCall","at","isSameToolCall","push","length","shift","occurrences","filter","call","reset","current","a","b","toolName","JSON","stringify","input"],"mappings":";;;;AAgBO,MAAMA,eAAAA,CAAAA;EAhBb;;;AAiBYC,EAAAA,MAAAA;AACAC,EAAAA,aAAAA,GAAgC,EAAA;AAChCC,EAAAA,kBAAAA,GAAqC,EAAA;EACxCC,UAAAA,GAAa,KAAA;EACbC,OAAAA,GAAU,IAAA;EAEjB,WAAA,CAAYJ,MAAAA,GAAgC,EAAC,EAAG;AAC9C,IAAA,IAAA,CAAKA,MAAAA,GAAS;AACZK,MAAAA,eAAAA,EAAiBL,OAAOK,eAAAA,IAAmB,CAAA;AAC3CC,MAAAA,mBAAAA,EAAqBN,OAAOM,mBAAAA,IAAuB,CAAA;AACnDC,MAAAA,UAAAA,EAAYP,OAAOO,UAAAA,IAAc;AACnC,KAAA;AACF;AAEAC,EAAAA,QAAAA,CAASC,KAAAA,EAA2B;AAClC,IAAA,IAAI,CAAC,KAAKL,OAAAA,EAAS;AACjB,MAAA;AACF;AAGA,IAAA,MAAMM,QAAAA,GAAW,IAAA,CAAKT,aAAAA,CAAcU,EAAAA,CAAG,EAAC,CAAA;AACxC,IAAA,IAAID,QAAAA,IAAY,IAAA,CAAKE,cAAAA,CAAeF,QAAAA,EAAUD,KAAAA,CAAAA,EAAQ;AACpD,MAAA,IAAA,CAAKR,aAAAA,CAAcY,KAAKJ,KAAAA,CAAAA;AACxB,MAAA,IAAI,IAAA,CAAKR,aAAAA,CAAca,MAAAA,GAAS,IAAA,CAAKd,OAAOK,eAAAA,EAAiB;AAC3D,QAAA,IAAA,CAAKF,UAAAA,GAAa,IAAA;AACpB;KACF,MAAO;AACL,MAAA,IAAA,CAAKF,aAAAA,GAAgB;AAACQ,QAAAA;;AACxB;AAGA,IAAA,IAAA,CAAKP,kBAAAA,CAAmBW,KAAKJ,KAAAA,CAAAA;AAC7B,IAAA,IAAI,IAAA,CAAKP,kBAAAA,CAAmBY,MAAAA,GAAS,IAAA,CAAKd,OAAOO,UAAAA,EAAY;AAC3D,MAAA,IAAA,CAAKL,mBAAmBa,KAAAA,EAAK;AAC/B;AAEA,IAAA,MAAMC,WAAAA,GAAc,IAAA,CAAKd,kBAAAA,CAAmBe,MAAAA,CAAO,CAACC,IAAAA,KAClD,IAAA,CAAKN,cAAAA,CAAeM,IAAAA,EAAMT,KAAAA,CAAAA,CAAAA,CAC1BK,MAAAA;AACF,IAAA,IAAIE,WAAAA,GAAc,IAAA,CAAKhB,MAAAA,CAAOM,mBAAAA,EAAqB;AACjD,MAAA,IAAA,CAAKH,UAAAA,GAAa,IAAA;AACpB;AACF;AAEAgB,EAAAA,KAAAA,CAAMC,OAAAA,EAA8B;AAClC,IAAA,IAAA,CAAKnB,gBAAgBmB,OAAAA,GAAU;AAACA,MAAAA;QAAW,EAAA;AAC3C,IAAA,IAAA,CAAKlB,qBAAqBkB,OAAAA,GAAU;AAACA,MAAAA;QAAW,EAAA;AAChD,IAAA,IAAA,CAAKjB,UAAAA,GAAa,KAAA;AACpB;AAEUS,EAAAA,cAAAA,CAAeS,GAAiBC,CAAAA,EAA0B;AAClE,IAAA,OAAOD,CAAAA,CAAEE,QAAAA,KAAaD,CAAAA,CAAEC,QAAAA,IAAYC,IAAAA,CAAKC,SAAAA,CAAUJ,CAAAA,CAAEK,KAAK,CAAA,KAAMF,IAAAA,CAAKC,SAAAA,CAAUH,CAAAA,CAAEI,KAAK,CAAA;AACxF;AACF","file":"toolCallChecker.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolCallPart } from \"ai\";\n\nexport interface ToolCallCheckerConfig {\n maxStrikeLength?: number;\n maxTotalOccurrences?: number;\n windowSize?: number;\n}\n\n/**\n * Detects cycles in tool calls\n */\nexport class ToolCallChecker {\n protected config: Required<ToolCallCheckerConfig>;\n protected strikeHistory: ToolCallPart[] = [];\n protected occurrencesHistory: ToolCallPart[] = [];\n public cycleFound = false;\n public enabled = true;\n\n constructor(config: ToolCallCheckerConfig = {}) {\n this.config = {\n maxStrikeLength: config.maxStrikeLength ?? 1,\n maxTotalOccurrences: config.maxTotalOccurrences ?? 5,\n windowSize: config.windowSize ?? 10,\n };\n }\n\n register(value: ToolCallPart): void {\n if (!this.enabled) {\n return;\n }\n\n // Check for consecutive strikes\n const lastCall = this.strikeHistory.at(-1);\n if (lastCall && this.isSameToolCall(lastCall, value)) {\n this.strikeHistory.push(value);\n if (this.strikeHistory.length > this.config.maxStrikeLength) {\n this.cycleFound = true;\n }\n } else {\n this.strikeHistory = [value];\n }\n\n // Check for total occurrences in window\n this.occurrencesHistory.push(value);\n if (this.occurrencesHistory.length > this.config.windowSize) {\n this.occurrencesHistory.shift();\n }\n\n const occurrences = this.occurrencesHistory.filter((call) =>\n this.isSameToolCall(call, value),\n ).length;\n if (occurrences > this.config.maxTotalOccurrences) {\n this.cycleFound = true;\n }\n }\n\n reset(current?: ToolCallPart): void {\n this.strikeHistory = current ? [current] : [];\n this.occurrencesHistory = current ? [current] : [];\n this.cycleFound = false;\n }\n\n protected isSameToolCall(a: ToolCallPart, b: ToolCallPart): boolean {\n return a.toolName === b.toolName && JSON.stringify(a.input) === JSON.stringify(b.input);\n }\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ToolCallPart } from 'ai';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
interface ToolCallCheckerConfig {
|
|
9
|
+
maxStrikeLength?: number;
|
|
10
|
+
maxTotalOccurrences?: number;
|
|
11
|
+
windowSize?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Detects cycles in tool calls
|
|
15
|
+
*/
|
|
16
|
+
declare class ToolCallChecker {
|
|
17
|
+
protected config: Required<ToolCallCheckerConfig>;
|
|
18
|
+
protected strikeHistory: ToolCallPart[];
|
|
19
|
+
protected occurrencesHistory: ToolCallPart[];
|
|
20
|
+
cycleFound: boolean;
|
|
21
|
+
enabled: boolean;
|
|
22
|
+
constructor(config?: ToolCallCheckerConfig);
|
|
23
|
+
register(value: ToolCallPart): void;
|
|
24
|
+
reset(current?: ToolCallPart): void;
|
|
25
|
+
protected isSameToolCall(a: ToolCallPart, b: ToolCallPart): boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { ToolCallChecker, type ToolCallCheckerConfig };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ToolCallPart } from 'ai';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
interface ToolCallCheckerConfig {
|
|
9
|
+
maxStrikeLength?: number;
|
|
10
|
+
maxTotalOccurrences?: number;
|
|
11
|
+
windowSize?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Detects cycles in tool calls
|
|
15
|
+
*/
|
|
16
|
+
declare class ToolCallChecker {
|
|
17
|
+
protected config: Required<ToolCallCheckerConfig>;
|
|
18
|
+
protected strikeHistory: ToolCallPart[];
|
|
19
|
+
protected occurrencesHistory: ToolCallPart[];
|
|
20
|
+
cycleFound: boolean;
|
|
21
|
+
enabled: boolean;
|
|
22
|
+
constructor(config?: ToolCallCheckerConfig);
|
|
23
|
+
register(value: ToolCallPart): void;
|
|
24
|
+
reset(current?: ToolCallPart): void;
|
|
25
|
+
protected isSameToolCall(a: ToolCallPart, b: ToolCallPart): boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { ToolCallChecker, type ToolCallCheckerConfig };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
class ToolCallChecker {
|
|
4
|
+
static {
|
|
5
|
+
__name(this, "ToolCallChecker");
|
|
6
|
+
}
|
|
7
|
+
config;
|
|
8
|
+
strikeHistory = [];
|
|
9
|
+
occurrencesHistory = [];
|
|
10
|
+
cycleFound = false;
|
|
11
|
+
enabled = true;
|
|
12
|
+
constructor(config = {}) {
|
|
13
|
+
this.config = {
|
|
14
|
+
maxStrikeLength: config.maxStrikeLength ?? 1,
|
|
15
|
+
maxTotalOccurrences: config.maxTotalOccurrences ?? 5,
|
|
16
|
+
windowSize: config.windowSize ?? 10
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
register(value) {
|
|
20
|
+
if (!this.enabled) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const lastCall = this.strikeHistory.at(-1);
|
|
24
|
+
if (lastCall && this.isSameToolCall(lastCall, value)) {
|
|
25
|
+
this.strikeHistory.push(value);
|
|
26
|
+
if (this.strikeHistory.length > this.config.maxStrikeLength) {
|
|
27
|
+
this.cycleFound = true;
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
this.strikeHistory = [
|
|
31
|
+
value
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
this.occurrencesHistory.push(value);
|
|
35
|
+
if (this.occurrencesHistory.length > this.config.windowSize) {
|
|
36
|
+
this.occurrencesHistory.shift();
|
|
37
|
+
}
|
|
38
|
+
const occurrences = this.occurrencesHistory.filter((call) => this.isSameToolCall(call, value)).length;
|
|
39
|
+
if (occurrences > this.config.maxTotalOccurrences) {
|
|
40
|
+
this.cycleFound = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
reset(current) {
|
|
44
|
+
this.strikeHistory = current ? [
|
|
45
|
+
current
|
|
46
|
+
] : [];
|
|
47
|
+
this.occurrencesHistory = current ? [
|
|
48
|
+
current
|
|
49
|
+
] : [];
|
|
50
|
+
this.cycleFound = false;
|
|
51
|
+
}
|
|
52
|
+
isSameToolCall(a, b) {
|
|
53
|
+
return a.toolName === b.toolName && JSON.stringify(a.input) === JSON.stringify(b.input);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { ToolCallChecker };
|
|
58
|
+
//# sourceMappingURL=toolCallChecker.js.map
|
|
59
|
+
//# sourceMappingURL=toolCallChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/utils/toolCallChecker.ts"],"names":["ToolCallChecker","config","strikeHistory","occurrencesHistory","cycleFound","enabled","maxStrikeLength","maxTotalOccurrences","windowSize","register","value","lastCall","at","isSameToolCall","push","length","shift","occurrences","filter","call","reset","current","a","b","toolName","JSON","stringify","input"],"mappings":";;AAgBO,MAAMA,eAAAA,CAAAA;EAhBb;;;AAiBYC,EAAAA,MAAAA;AACAC,EAAAA,aAAAA,GAAgC,EAAA;AAChCC,EAAAA,kBAAAA,GAAqC,EAAA;EACxCC,UAAAA,GAAa,KAAA;EACbC,OAAAA,GAAU,IAAA;EAEjB,WAAA,CAAYJ,MAAAA,GAAgC,EAAC,EAAG;AAC9C,IAAA,IAAA,CAAKA,MAAAA,GAAS;AACZK,MAAAA,eAAAA,EAAiBL,OAAOK,eAAAA,IAAmB,CAAA;AAC3CC,MAAAA,mBAAAA,EAAqBN,OAAOM,mBAAAA,IAAuB,CAAA;AACnDC,MAAAA,UAAAA,EAAYP,OAAOO,UAAAA,IAAc;AACnC,KAAA;AACF;AAEAC,EAAAA,QAAAA,CAASC,KAAAA,EAA2B;AAClC,IAAA,IAAI,CAAC,KAAKL,OAAAA,EAAS;AACjB,MAAA;AACF;AAGA,IAAA,MAAMM,QAAAA,GAAW,IAAA,CAAKT,aAAAA,CAAcU,EAAAA,CAAG,EAAC,CAAA;AACxC,IAAA,IAAID,QAAAA,IAAY,IAAA,CAAKE,cAAAA,CAAeF,QAAAA,EAAUD,KAAAA,CAAAA,EAAQ;AACpD,MAAA,IAAA,CAAKR,aAAAA,CAAcY,KAAKJ,KAAAA,CAAAA;AACxB,MAAA,IAAI,IAAA,CAAKR,aAAAA,CAAca,MAAAA,GAAS,IAAA,CAAKd,OAAOK,eAAAA,EAAiB;AAC3D,QAAA,IAAA,CAAKF,UAAAA,GAAa,IAAA;AACpB;KACF,MAAO;AACL,MAAA,IAAA,CAAKF,aAAAA,GAAgB;AAACQ,QAAAA;;AACxB;AAGA,IAAA,IAAA,CAAKP,kBAAAA,CAAmBW,KAAKJ,KAAAA,CAAAA;AAC7B,IAAA,IAAI,IAAA,CAAKP,kBAAAA,CAAmBY,MAAAA,GAAS,IAAA,CAAKd,OAAOO,UAAAA,EAAY;AAC3D,MAAA,IAAA,CAAKL,mBAAmBa,KAAAA,EAAK;AAC/B;AAEA,IAAA,MAAMC,WAAAA,GAAc,IAAA,CAAKd,kBAAAA,CAAmBe,MAAAA,CAAO,CAACC,IAAAA,KAClD,IAAA,CAAKN,cAAAA,CAAeM,IAAAA,EAAMT,KAAAA,CAAAA,CAAAA,CAC1BK,MAAAA;AACF,IAAA,IAAIE,WAAAA,GAAc,IAAA,CAAKhB,MAAAA,CAAOM,mBAAAA,EAAqB;AACjD,MAAA,IAAA,CAAKH,UAAAA,GAAa,IAAA;AACpB;AACF;AAEAgB,EAAAA,KAAAA,CAAMC,OAAAA,EAA8B;AAClC,IAAA,IAAA,CAAKnB,gBAAgBmB,OAAAA,GAAU;AAACA,MAAAA;QAAW,EAAA;AAC3C,IAAA,IAAA,CAAKlB,qBAAqBkB,OAAAA,GAAU;AAACA,MAAAA;QAAW,EAAA;AAChD,IAAA,IAAA,CAAKjB,UAAAA,GAAa,KAAA;AACpB;AAEUS,EAAAA,cAAAA,CAAeS,GAAiBC,CAAAA,EAA0B;AAClE,IAAA,OAAOD,CAAAA,CAAEE,QAAAA,KAAaD,CAAAA,CAAEC,QAAAA,IAAYC,IAAAA,CAAKC,SAAAA,CAAUJ,CAAAA,CAAEK,KAAK,CAAA,KAAMF,IAAAA,CAAKC,SAAAA,CAAUH,CAAAA,CAAEI,KAAK,CAAA;AACxF;AACF","file":"toolCallChecker.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolCallPart } from \"ai\";\n\nexport interface ToolCallCheckerConfig {\n maxStrikeLength?: number;\n maxTotalOccurrences?: number;\n windowSize?: number;\n}\n\n/**\n * Detects cycles in tool calls\n */\nexport class ToolCallChecker {\n protected config: Required<ToolCallCheckerConfig>;\n protected strikeHistory: ToolCallPart[] = [];\n protected occurrencesHistory: ToolCallPart[] = [];\n public cycleFound = false;\n public enabled = true;\n\n constructor(config: ToolCallCheckerConfig = {}) {\n this.config = {\n maxStrikeLength: config.maxStrikeLength ?? 1,\n maxTotalOccurrences: config.maxTotalOccurrences ?? 5,\n windowSize: config.windowSize ?? 10,\n };\n }\n\n register(value: ToolCallPart): void {\n if (!this.enabled) {\n return;\n }\n\n // Check for consecutive strikes\n const lastCall = this.strikeHistory.at(-1);\n if (lastCall && this.isSameToolCall(lastCall, value)) {\n this.strikeHistory.push(value);\n if (this.strikeHistory.length > this.config.maxStrikeLength) {\n this.cycleFound = true;\n }\n } else {\n this.strikeHistory = [value];\n }\n\n // Check for total occurrences in window\n this.occurrencesHistory.push(value);\n if (this.occurrencesHistory.length > this.config.windowSize) {\n this.occurrencesHistory.shift();\n }\n\n const occurrences = this.occurrencesHistory.filter((call) =>\n this.isSameToolCall(call, value),\n ).length;\n if (occurrences > this.config.maxTotalOccurrences) {\n this.cycleFound = true;\n }\n }\n\n reset(current?: ToolCallPart): void {\n this.strikeHistory = current ? [current] : [];\n this.occurrencesHistory = current ? [current] : [];\n this.cycleFound = false;\n }\n\n protected isSameToolCall(a: ToolCallPart, b: ToolCallPart): boolean {\n return a.toolName === b.toolName && JSON.stringify(a.input) === JSON.stringify(b.input);\n }\n}\n"]}
|
|
@@ -113,7 +113,7 @@ class ToolCallingAgent extends base_cjs.BaseAgent {
|
|
|
113
113
|
if (!tool) {
|
|
114
114
|
throw new base_cjs.AgentError(`Tool ${toolCall.toolName} does not exist!`);
|
|
115
115
|
}
|
|
116
|
-
const toolInput = toolCall.
|
|
116
|
+
const toolInput = toolCall.input;
|
|
117
117
|
const toolResponse = await tool.run(toolInput).context({
|
|
118
118
|
state,
|
|
119
119
|
toolCallMsg: toolCall
|
|
@@ -122,8 +122,10 @@ class ToolCallingAgent extends base_cjs.BaseAgent {
|
|
|
122
122
|
type: "tool-result",
|
|
123
123
|
toolCallId: toolCall.toolCallId,
|
|
124
124
|
toolName: toolCall.toolName,
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
output: {
|
|
126
|
+
type: "text",
|
|
127
|
+
value: toolResponse.getTextContent()
|
|
128
|
+
}
|
|
127
129
|
}));
|
|
128
130
|
} catch (e) {
|
|
129
131
|
if (e instanceof base_cjs$1.ToolError) {
|
|
@@ -132,8 +134,10 @@ class ToolCallingAgent extends base_cjs.BaseAgent {
|
|
|
132
134
|
type: "tool-result",
|
|
133
135
|
toolCallId: toolCall.toolCallId,
|
|
134
136
|
toolName: toolCall.toolName,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
+
output: {
|
|
138
|
+
type: "error-text",
|
|
139
|
+
value: e.explain()
|
|
140
|
+
}
|
|
137
141
|
}));
|
|
138
142
|
} else {
|
|
139
143
|
throw e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/agents/toolCalling/agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","saveIntermediateSteps","register","_run","options","run","tempMessageKey","execution","totalMaxRetries","omitUndefined","state","memory","UnconstrainedMemory","result","undefined","iteration","add","SystemMessage","templates","system","render","role","instructions","addMany","messages","prompt","userMessage","UserMessage","task","context","expectedOutput","isString","globalRetriesCounter","RetryCounter","AgentError","usePlainResponse","ZodSchema","finalAnswerToolSchema","z","object","response","string","describe","String","finalAnswerTool","DynamicTool","name","description","inputSchema","handler","JSON","stringify","AssistantMessage","StringToolOutput","tools","forceFinalAnswer","Infinity","emit","llm","create","slice","toolChoice","length","stream","toolCallMessages","getToolCalls","toolCall","tool","find","toolName","toolInput","args","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","getTextContent","isError","e","ToolError","use","explain","textMessages","getTextMessages","isEmpty","deleteMany","filter","msg","meta","push","reset","extraDescription","map","join","overrides","defaultTemplates","ToolCallingAgentSystemPrompt","ToolCallingAgentTaskPrompt","mapObj","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","enumerable"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool, DynamicTool, StringToolOutput, ToolError, ToolOutput } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport type {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentTemplates,\n ToolCallingAgentCallbacks,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunState,\n} from \"@/agents/toolCalling/types.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { AssistantMessage, SystemMessage, ToolMessage, UserMessage } from \"@/backend/message.js\";\nimport { isEmpty, isString } from \"remeda\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { mapObj, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n ToolCallingAgentSystemPrompt,\n ToolCallingAgentTaskPrompt,\n} from \"@/agents/toolCalling/prompts.js\";\nimport { z, ZodSchema } from \"zod\";\n\nexport type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (\n template: ToolCallingAgentTemplates[K],\n) => ToolCallingAgentTemplates[K];\n\nexport interface ToolCallingAgentInput {\n llm: ChatModel;\n memory: BaseMemory;\n tools: AnyTool[];\n meta?: Omit<AgentMeta, \"tools\">;\n templates?: Partial<{\n [K in keyof ToolCallingAgentTemplates]:\n | ToolCallingAgentTemplates[K]\n | ToolCallingAgentTemplateFactory<K>;\n }>;\n execution?: ToolCallingAgentExecutionConfig;\n saveIntermediateSteps?: boolean;\n}\n\nexport class ToolCallingAgent extends BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<ToolCallingAgentCallbacks>({\n namespace: [\"agent\", \"toolCalling\"],\n creator: this,\n });\n\n constructor(public readonly input: ToolCallingAgentInput) {\n super();\n this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: ToolCallingAgentRunInput,\n options: ToolCallingAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<ToolCallingAgentRunOutput> {\n const tempMessageKey = \"tempMessage\" as const;\n const execution = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 10,\n ...omitUndefined(this.input.execution ?? {}),\n ...omitUndefined(options.execution ?? {}),\n };\n\n const state: ToolCallingAgentRunState = {\n memory: new UnconstrainedMemory(),\n result: undefined,\n iteration: 0,\n };\n await state.memory.add(\n new SystemMessage(\n this.templates.system.render({\n role: undefined,\n instructions: undefined,\n }),\n ),\n );\n await state.memory.addMany(this.memory.messages);\n\n if (input.prompt) {\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: isString(input.expectedOutput) ? input.expectedOutput : undefined,\n }),\n );\n await state.memory.add(userMessage);\n }\n\n const globalRetriesCounter = new RetryCounter(execution.totalMaxRetries || 1, AgentError);\n\n const usePlainResponse = !input.expectedOutput || !(input.expectedOutput instanceof ZodSchema);\n const finalAnswerToolSchema = usePlainResponse\n ? z.object({\n response: z.string().describe(String(input.expectedOutput ?? \"\")),\n })\n : (input.expectedOutput as ZodSchema);\n\n const finalAnswerTool = new DynamicTool({\n name: \"final_answer\",\n description: \"Sends the final answer to the user\",\n inputSchema: finalAnswerToolSchema,\n handler: async (input) => {\n const result = usePlainResponse ? input.response : JSON.stringify(input);\n state.result = new AssistantMessage(result);\n return new StringToolOutput(\"Message has been sent\");\n },\n });\n\n const tools = [...this.input.tools, finalAnswerTool];\n let forceFinalAnswer = false;\n\n while (!state.result) {\n state.iteration++;\n if (state.iteration > (execution.totalMaxRetries ?? Infinity)) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${state.iteration} iterations.`,\n );\n }\n\n await run.emitter.emit(\"start\", { state });\n const response = await this.input.llm.create({\n messages: state.memory.messages.slice(),\n tools,\n toolChoice: forceFinalAnswer ? finalAnswerTool : tools.length > 1 ? \"required\" : tools[0],\n stream: false,\n });\n await state.memory.addMany(response.messages);\n\n const toolCallMessages = response.getToolCalls();\n for (const toolCall of toolCallMessages) {\n try {\n const tool = tools.find((tool) => tool.name === toolCall.toolName);\n if (!tool) {\n throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);\n }\n\n const toolInput: any = toolCall.args;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolResponse.getTextContent(),\n isError: false,\n }),\n );\n } catch (e) {\n if (e instanceof ToolError) {\n globalRetriesCounter.use(e);\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: e.explain(),\n isError: true,\n }),\n );\n } else {\n throw e;\n }\n }\n }\n\n // handle empty messages for some models\n const textMessages = response.getTextMessages();\n if (isEmpty(toolCallMessages) && isEmpty(textMessages)) {\n await state.memory.add(new AssistantMessage(\"\\n\", { [tempMessageKey]: true }));\n } else {\n await state.memory.deleteMany(\n state.memory.messages.filter((msg) => msg.meta[tempMessageKey]),\n );\n }\n\n // Fallback for providers that do not support structured outputs\n if (!isEmpty(textMessages) && isEmpty(toolCallMessages)) {\n forceFinalAnswer = true;\n tools.length = 0;\n tools.push(finalAnswerTool);\n }\n\n await run.emitter.emit(\"success\", { state });\n }\n\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(state.memory.messages.slice(1));\n } else {\n await this.memory.addMany(state.memory.messages.slice(-2));\n }\n return { memory: state.memory, result: state.result };\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools.slice();\n\n if (this.input.meta) {\n return { ...this.input.meta, tools };\n }\n\n return {\n name: \"ToolCalling\",\n tools,\n description: \"ToolCallingAgent that uses tools to accomplish the task.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n @Cache({ enumerable: false })\n protected get templates(): ToolCallingAgentTemplates {\n const overrides = this.input.templates ?? {};\n const defaultTemplates: ToolCallingAgentTemplates = {\n system: ToolCallingAgentSystemPrompt,\n task: ToolCallingAgentTaskPrompt,\n } as const;\n\n return mapObj(defaultTemplates)(\n (key, defaultTemplate: ToolCallingAgentTemplates[typeof key]) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n },\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory() {\n return this.input.memory;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/agents/toolCalling/agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","saveIntermediateSteps","register","_run","options","run","tempMessageKey","execution","totalMaxRetries","omitUndefined","state","memory","UnconstrainedMemory","result","undefined","iteration","add","SystemMessage","templates","system","render","role","instructions","addMany","messages","prompt","userMessage","UserMessage","task","context","expectedOutput","isString","globalRetriesCounter","RetryCounter","AgentError","usePlainResponse","ZodSchema","finalAnswerToolSchema","z","object","response","string","describe","String","finalAnswerTool","DynamicTool","name","description","inputSchema","handler","JSON","stringify","AssistantMessage","StringToolOutput","tools","forceFinalAnswer","Infinity","emit","llm","create","slice","toolChoice","length","stream","toolCallMessages","getToolCalls","toolCall","tool","find","toolName","toolInput","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","output","value","getTextContent","e","ToolError","use","explain","textMessages","getTextMessages","isEmpty","deleteMany","filter","msg","meta","push","reset","extraDescription","map","join","overrides","defaultTemplates","ToolCallingAgentSystemPrompt","ToolCallingAgentTaskPrompt","mapObj","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","enumerable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDO,MAAMA,yBAAyBC,kBAAAA,CAAAA;AAAAA,EAAAA;;;;EAKpBC,OAAAA,GAAUC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAiC;IACtEC,SAAAA,EAAW;AAAC,MAAA,OAAA;AAAS,MAAA;;IACrBC,OAAAA,EAAS;GACX,CAAA;AAEA,EAAA,WAAA,CAA4BC,KAAAA,EAA8B;AACxD,IAAA,KAAA,EAAK,EAAA,KADqBA,KAAAA,GAAAA,KAAAA;AAE1B,IAAA,IAAA,CAAKA,KAAAA,CAAMC,qBAAAA,GAAwB,IAAA,CAAKD,KAAAA,CAAMC,qBAAAA,IAAyB,IAAA;AACzE;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAgBC,IAAAA,CACdH,KAAAA,EACAI,OAAAA,GAAsC,IACtCC,GAAAA,EACoC;AACpC,IAAA,MAAMC,cAAAA,GAAiB,aAAA;AACvB,IAAA,MAAMC,SAAAA,GAAY;MAEhBC,eAAAA,EAAiB,EAAA;MAEjB,GAAGC,wBAAAA,CAAc,IAAA,CAAKT,KAAAA,CAAMO,SAAAA,IAAa,EAAC,CAAA;AAC1C,MAAA,GAAGE,wBAAAA,CAAcL,OAAAA,CAAQG,SAAAA,IAAa,EAAC;AACzC,KAAA;AAEA,IAAA,MAAMG,KAAAA,GAAkC;AACtCC,MAAAA,MAAAA,EAAQ,IAAIC,2CAAAA,EAAAA;MACZC,MAAAA,EAAQC,MAAAA;MACRC,SAAAA,EAAW;AACb,KAAA;AACA,IAAA,MAAML,KAAAA,CAAMC,OAAOK,GAAAA,CACjB,IAAIC,0BACF,IAAA,CAAKC,SAAAA,CAAUC,OAAOC,MAAAA,CAAO;MAC3BC,IAAAA,EAAMP,MAAAA;MACNQ,YAAAA,EAAcR;AAChB,KAAA,CAAA,CAAA,CAAA;AAGJ,IAAA,MAAMJ,KAAAA,CAAMC,MAAAA,CAAOY,OAAAA,CAAQ,IAAA,CAAKZ,OAAOa,QAAQ,CAAA;AAE/C,IAAA,IAAIxB,MAAMyB,MAAAA,EAAQ;AAChB,MAAA,MAAMC,cAAc,IAAIC,uBAAAA,CACtB,IAAA,CAAKT,SAAAA,CAAUU,KAAKR,MAAAA,CAAO;AACzBK,QAAAA,MAAAA,EAAQzB,KAAAA,CAAMyB,MAAAA;AACdI,QAAAA,OAAAA,EAAS7B,KAAAA,CAAM6B,OAAAA;AACfC,QAAAA,cAAAA,EAAgBC,eAAAA,CAAS/B,KAAAA,CAAM8B,cAAc,CAAA,GAAI9B,MAAM8B,cAAAA,GAAiBhB;AAC1E,OAAA,CAAA,CAAA;AAEF,MAAA,MAAMJ,KAAAA,CAAMC,MAAAA,CAAOK,GAAAA,CAAIU,WAAAA,CAAAA;AACzB;AAEA,IAAA,MAAMM,uBAAuB,IAAIC,wBAAAA,CAAa1B,SAAAA,CAAUC,eAAAA,IAAmB,GAAG0B,mBAAAA,CAAAA;AAE9E,IAAA,MAAMC,mBAAmB,CAACnC,KAAAA,CAAM8B,cAAAA,IAAkB,EAAE9B,MAAM8B,cAAAA,YAA0BM,aAAAA,CAAAA;AACpF,IAAA,MAAMC,qBAAAA,GAAwBF,gBAAAA,GAC1BG,KAAAA,CAAEC,MAAAA,CAAO;MACPC,QAAAA,EAAUF,KAAAA,CAAEG,QAAM,CAAGC,QAAAA,CAASC,OAAO3C,KAAAA,CAAM8B,cAAAA,IAAkB,EAAA,CAAA;AAC/D,KAAA,IACC9B,KAAAA,CAAM8B,cAAAA;AAEX,IAAA,MAAMc,eAAAA,GAAkB,IAAIC,sBAAAA,CAAY;MACtCC,IAAAA,EAAM,cAAA;MACNC,WAAAA,EAAa,oCAAA;MACbC,WAAAA,EAAaX,qBAAAA;AACbY,MAAAA,OAAAA,gCAAgBjD,MAAAA,KAAAA;AACd,QAAA,MAAMa,SAASsB,gBAAAA,GAAmBnC,MAAAA,CAAMwC,QAAAA,GAAWU,IAAAA,CAAKC,UAAUnD,MAAAA,CAAAA;AAClEU,QAAAA,KAAAA,CAAMG,MAAAA,GAAS,IAAIuC,4BAAAA,CAAiBvC,MAAAA,CAAAA;AACpC,QAAA,OAAO,IAAIwC,4BAAiB,uBAAA,CAAA;OAC9B,EAJS,SAAA;KAKX,CAAA;AAEA,IAAA,MAAMC,KAAAA,GAAQ;AAAI,MAAA,GAAA,IAAA,CAAKtD,KAAAA,CAAMsD,KAAAA;AAAOV,MAAAA;;AACpC,IAAA,IAAIW,gBAAAA,GAAmB,KAAA;AAEvB,IAAA,OAAO,CAAC7C,MAAMG,MAAAA,EAAQ;AACpBH,MAAAA,KAAAA,CAAMK,SAAAA,EAAAA;AACN,MAAA,IAAIL,KAAAA,CAAMK,SAAAA,IAAaR,SAAAA,CAAUC,eAAAA,IAAmBgD,QAAAA,CAAAA,EAAW;AAC7D,QAAA,MAAM,IAAItB,mBAAAA,CACR,CAAA,0CAAA,EAA6CxB,KAAAA,CAAMK,SAAS,CAAA,YAAA,CAAc,CAAA;AAE9E;AAEA,MAAA,MAAMV,GAAAA,CAAIX,OAAAA,CAAQ+D,IAAAA,CAAK,OAAA,EAAS;AAAE/C,QAAAA;OAAM,CAAA;AACxC,MAAA,MAAM8B,QAAAA,GAAW,MAAM,IAAA,CAAKxC,KAAAA,CAAM0D,IAAIC,MAAAA,CAAO;QAC3CnC,QAAAA,EAAUd,KAAAA,CAAMC,MAAAA,CAAOa,QAAAA,CAASoC,KAAAA,EAAK;AACrCN,QAAAA,KAAAA;AACAO,QAAAA,UAAAA,EAAYN,mBAAmBX,eAAAA,GAAkBU,KAAAA,CAAMQ,SAAS,CAAA,GAAI,UAAA,GAAaR,MAAM,CAAA,CAAA;QACvFS,MAAAA,EAAQ;OACV,CAAA;AACA,MAAA,MAAMrD,KAAAA,CAAMC,MAAAA,CAAOY,OAAAA,CAAQiB,QAAAA,CAAShB,QAAQ,CAAA;AAE5C,MAAA,MAAMwC,gBAAAA,GAAmBxB,SAASyB,YAAAA,EAAY;AAC9C,MAAA,KAAA,MAAWC,YAAYF,gBAAAA,EAAkB;AACvC,QAAA,IAAI;AACF,UAAA,MAAMG,IAAAA,GAAOb,MAAMc,IAAAA,CAAK,CAACD,UAASA,KAAAA,CAAKrB,IAAAA,KAASoB,SAASG,QAAQ,CAAA;AACjE,UAAA,IAAI,CAACF,IAAAA,EAAM;AACT,YAAA,MAAM,IAAIjC,mBAAAA,CAAW,CAAA,KAAA,EAAQgC,QAAAA,CAASG,QAAQ,CAAA,gBAAA,CAAkB,CAAA;AAClE;AAEA,UAAA,MAAMC,YAAiBJ,QAAAA,CAASlE,KAAAA;AAChC,UAAA,MAAMuE,eAA2B,MAAMJ,IAAAA,CAAK9D,GAAAA,CAAIiE,SAAAA,EAAWzC,OAAAA,CAAQ;AACjEnB,YAAAA,KAAAA;YACA8D,WAAAA,EAAaN;WACf,CAAA;AACA,UAAA,MAAMxD,KAAAA,CAAMC,MAAAA,CAAOK,GAAAA,CACjB,IAAIyD,uBAAAA,CAAY;YACdC,IAAAA,EAAM,aAAA;AACNC,YAAAA,UAAAA,EAAYT,QAAAA,CAASS,UAAAA;AACrBN,YAAAA,QAAAA,EAAUH,QAAAA,CAASG,QAAAA;YACnBO,MAAAA,EAAQ;cAAEF,IAAAA,EAAM,MAAA;AAAQG,cAAAA,KAAAA,EAAON,aAAaO,cAAAA;AAAiB;AAC/D,WAAA,CAAA,CAAA;AAEJ,SAAA,CAAA,OAASC,CAAAA,EAAG;AACV,UAAA,IAAIA,aAAaC,oBAAAA,EAAW;AAC1BhD,YAAAA,oBAAAA,CAAqBiD,IAAIF,CAAAA,CAAAA;AACzB,YAAA,MAAMrE,KAAAA,CAAMC,MAAAA,CAAOK,GAAAA,CACjB,IAAIyD,uBAAAA,CAAY;cACdC,IAAAA,EAAM,aAAA;AACNC,cAAAA,UAAAA,EAAYT,QAAAA,CAASS,UAAAA;AACrBN,cAAAA,QAAAA,EAAUH,QAAAA,CAASG,QAAAA;cACnBO,MAAAA,EAAQ;gBAAEF,IAAAA,EAAM,YAAA;AAAcG,gBAAAA,KAAAA,EAAOE,EAAEG,OAAAA;AAAU;AACnD,aAAA,CAAA,CAAA;WAEJ,MAAO;AACL,YAAA,MAAMH,CAAAA;AACR;AACF;AACF;AAGA,MAAA,MAAMI,YAAAA,GAAe3C,SAAS4C,eAAAA,EAAe;AAC7C,MAAA,IAAIC,cAAAA,CAAQrB,gBAAAA,CAAAA,IAAqBqB,cAAAA,CAAQF,YAAAA,CAAAA,EAAe;AACtD,QAAA,MAAMzE,KAAAA,CAAMC,MAAAA,CAAOK,GAAAA,CAAI,IAAIoC,6BAAiB,IAAA,EAAM;AAAE,UAAA,CAAC9C,cAAAA,GAAiB;AAAK,SAAA,CAAA,CAAA;OAC7E,MAAO;AACL,QAAA,MAAMI,KAAAA,CAAMC,MAAAA,CAAO2E,UAAAA,CACjB5E,KAAAA,CAAMC,MAAAA,CAAOa,QAAAA,CAAS+D,MAAAA,CAAO,CAACC,GAAAA,KAAQA,GAAAA,CAAIC,IAAAA,CAAKnF,cAAAA,CAAe,CAAA,CAAA;AAElE;AAGA,MAAA,IAAI,CAAC+E,cAAAA,CAAQF,YAAAA,CAAAA,IAAiBE,cAAAA,CAAQrB,gBAAAA,CAAAA,EAAmB;AACvDT,QAAAA,gBAAAA,GAAmB,IAAA;AACnBD,QAAAA,KAAAA,CAAMQ,MAAAA,GAAS,CAAA;AACfR,QAAAA,KAAAA,CAAMoC,KAAK9C,eAAAA,CAAAA;AACb;AAEA,MAAA,MAAMvC,GAAAA,CAAIX,OAAAA,CAAQ+D,IAAAA,CAAK,SAAA,EAAW;AAAE/C,QAAAA;OAAM,CAAA;AAC5C;AAEA,IAAA,IAAI,IAAA,CAAKV,MAAMC,qBAAAA,EAAuB;AACpC,MAAA,IAAA,CAAKU,OAAOgF,KAAAA,EAAK;AACjB,MAAA,MAAM,IAAA,CAAKhF,OAAOY,OAAAA,CAAQb,KAAAA,CAAMC,OAAOa,QAAAA,CAASoC,KAAAA,CAAM,CAAA,CAAA,CAAA;KACxD,MAAO;AACL,MAAA,MAAM,IAAA,CAAKjD,OAAOY,OAAAA,CAAQb,KAAAA,CAAMC,OAAOa,QAAAA,CAASoC,KAAAA,CAAM,EAAC,CAAA,CAAA;AACzD;AACA,IAAA,OAAO;AAAEjD,MAAAA,MAAAA,EAAQD,KAAAA,CAAMC,MAAAA;AAAQE,MAAAA,MAAAA,EAAQH,KAAAA,CAAMG;AAAO,KAAA;AACtD;AAEA,EAAA,IAAI4E,IAAAA,GAAkB;AACpB,IAAA,MAAMnC,KAAAA,GAAQ,IAAA,CAAKtD,KAAAA,CAAMsD,KAAAA,CAAMM,KAAAA,EAAK;AAEpC,IAAA,IAAI,IAAA,CAAK5D,MAAMyF,IAAAA,EAAM;AACnB,MAAA,OAAO;AAAE,QAAA,GAAG,KAAKzF,KAAAA,CAAMyF,IAAAA;AAAMnC,QAAAA;AAAM,OAAA;AACrC;AAEA,IAAA,OAAO;MACLR,IAAAA,EAAM,aAAA;AACNQ,MAAAA,KAAAA;MACAP,WAAAA,EAAa,0DAAA;MACb,GAAIO,KAAAA,CAAMQ,SAAS,CAAA,IAAK;QACtB8B,gBAAAA,EAAkB;AAChB,UAAA,CAAA,8CAAA,CAAA;aACGtC,KAAAA,CAAMuC,GAAAA,CAAI,CAAC1B,IAAAA,KAAS,CAAA,MAAA,EAASA,KAAKrB,IAAI,CAAA,GAAA,EAAMqB,IAAAA,CAAKpB,WAAW,CAAA,CAAA,CAAG;AAClE+C,SAAAA,CAAAA,IAAAA,CAAK,IAAA;AACT;AACF,KAAA;AACF;AAEA,EAAA,IACc5E,SAAAA,GAAuC;AACnD,IAAA,MAAM6E,SAAAA,GAAY,IAAA,CAAK/F,KAAAA,CAAMkB,SAAAA,IAAa,EAAC;AAC3C,IAAA,MAAM8E,gBAAAA,GAA8C;MAClD7E,MAAAA,EAAQ8E,wCAAAA;MACRrE,IAAAA,EAAMsE;AACR,KAAA;AAEA,IAAA,OAAOC,iBAAAA,CAAOH,gBAAAA,CAAAA,CACZ,CAACI,KAAKC,eAAAA,KAAAA;AACJ,MAAA,MAAMC,QAAAA,GAAWP,SAAAA,CAAUK,GAAAA,CAAAA,IAAQC,eAAAA;AACnC,MAAA,IAAIC,oBAAoBC,2BAAAA,EAAgB;AACtC,QAAA,OAAOD,QAAAA;AACT;AACA,MAAA,OAAOA,QAAAA,CAASD,eAAAA,CAAAA,IAAoBA,eAAAA;KACtC,CAAA;AAEJ;EAEAG,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;MACTxG,KAAAA,EAAOyG,qBAAAA,CAAY,KAAKzG,KAAK,CAAA;AAC7BN,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEA,EAAA,IAAIiB,OAAOA,MAAAA,EAAoB;AAC7B,IAAA,IAAA,CAAKX,MAAMW,MAAAA,GAASA,MAAAA;AACtB;AAEA,EAAA,IAAIA,MAAAA,GAAS;AACX,IAAA,OAAO,KAAKX,KAAAA,CAAMW,MAAAA;AACpB;AACF;;;IAlCW+F,UAAAA,EAAY","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool, DynamicTool, StringToolOutput, ToolError, ToolOutput } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport type {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentTemplates,\n ToolCallingAgentCallbacks,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunState,\n} from \"@/agents/toolCalling/types.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { AssistantMessage, SystemMessage, ToolMessage, UserMessage } from \"@/backend/message.js\";\nimport { isEmpty, isString } from \"remeda\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { mapObj, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n ToolCallingAgentSystemPrompt,\n ToolCallingAgentTaskPrompt,\n} from \"@/agents/toolCalling/prompts.js\";\nimport { z, ZodSchema } from \"zod\";\n\nexport type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (\n template: ToolCallingAgentTemplates[K],\n) => ToolCallingAgentTemplates[K];\n\nexport interface ToolCallingAgentInput {\n llm: ChatModel;\n memory: BaseMemory;\n tools: AnyTool[];\n meta?: Omit<AgentMeta, \"tools\">;\n templates?: Partial<{\n [K in keyof ToolCallingAgentTemplates]:\n | ToolCallingAgentTemplates[K]\n | ToolCallingAgentTemplateFactory<K>;\n }>;\n execution?: ToolCallingAgentExecutionConfig;\n saveIntermediateSteps?: boolean;\n}\n\nexport class ToolCallingAgent extends BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<ToolCallingAgentCallbacks>({\n namespace: [\"agent\", \"toolCalling\"],\n creator: this,\n });\n\n constructor(public readonly input: ToolCallingAgentInput) {\n super();\n this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: ToolCallingAgentRunInput,\n options: ToolCallingAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<ToolCallingAgentRunOutput> {\n const tempMessageKey = \"tempMessage\" as const;\n const execution = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 10,\n ...omitUndefined(this.input.execution ?? {}),\n ...omitUndefined(options.execution ?? {}),\n };\n\n const state: ToolCallingAgentRunState = {\n memory: new UnconstrainedMemory(),\n result: undefined,\n iteration: 0,\n };\n await state.memory.add(\n new SystemMessage(\n this.templates.system.render({\n role: undefined,\n instructions: undefined,\n }),\n ),\n );\n await state.memory.addMany(this.memory.messages);\n\n if (input.prompt) {\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: isString(input.expectedOutput) ? input.expectedOutput : undefined,\n }),\n );\n await state.memory.add(userMessage);\n }\n\n const globalRetriesCounter = new RetryCounter(execution.totalMaxRetries || 1, AgentError);\n\n const usePlainResponse = !input.expectedOutput || !(input.expectedOutput instanceof ZodSchema);\n const finalAnswerToolSchema = usePlainResponse\n ? z.object({\n response: z.string().describe(String(input.expectedOutput ?? \"\")),\n })\n : (input.expectedOutput as ZodSchema);\n\n const finalAnswerTool = new DynamicTool({\n name: \"final_answer\",\n description: \"Sends the final answer to the user\",\n inputSchema: finalAnswerToolSchema,\n handler: async (input) => {\n const result = usePlainResponse ? input.response : JSON.stringify(input);\n state.result = new AssistantMessage(result);\n return new StringToolOutput(\"Message has been sent\");\n },\n });\n\n const tools = [...this.input.tools, finalAnswerTool];\n let forceFinalAnswer = false;\n\n while (!state.result) {\n state.iteration++;\n if (state.iteration > (execution.totalMaxRetries ?? Infinity)) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${state.iteration} iterations.`,\n );\n }\n\n await run.emitter.emit(\"start\", { state });\n const response = await this.input.llm.create({\n messages: state.memory.messages.slice(),\n tools,\n toolChoice: forceFinalAnswer ? finalAnswerTool : tools.length > 1 ? \"required\" : tools[0],\n stream: false,\n });\n await state.memory.addMany(response.messages);\n\n const toolCallMessages = response.getToolCalls();\n for (const toolCall of toolCallMessages) {\n try {\n const tool = tools.find((tool) => tool.name === toolCall.toolName);\n if (!tool) {\n throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);\n }\n\n const toolInput: any = toolCall.input;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n output: { type: \"text\", value: toolResponse.getTextContent() },\n }),\n );\n } catch (e) {\n if (e instanceof ToolError) {\n globalRetriesCounter.use(e);\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n output: { type: \"error-text\", value: e.explain() },\n }),\n );\n } else {\n throw e;\n }\n }\n }\n\n // handle empty messages for some models\n const textMessages = response.getTextMessages();\n if (isEmpty(toolCallMessages) && isEmpty(textMessages)) {\n await state.memory.add(new AssistantMessage(\"\\n\", { [tempMessageKey]: true }));\n } else {\n await state.memory.deleteMany(\n state.memory.messages.filter((msg) => msg.meta[tempMessageKey]),\n );\n }\n\n // Fallback for providers that do not support structured outputs\n if (!isEmpty(textMessages) && isEmpty(toolCallMessages)) {\n forceFinalAnswer = true;\n tools.length = 0;\n tools.push(finalAnswerTool);\n }\n\n await run.emitter.emit(\"success\", { state });\n }\n\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(state.memory.messages.slice(1));\n } else {\n await this.memory.addMany(state.memory.messages.slice(-2));\n }\n return { memory: state.memory, result: state.result };\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools.slice();\n\n if (this.input.meta) {\n return { ...this.input.meta, tools };\n }\n\n return {\n name: \"ToolCalling\",\n tools,\n description: \"ToolCallingAgent that uses tools to accomplish the task.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n @Cache({ enumerable: false })\n protected get templates(): ToolCallingAgentTemplates {\n const overrides = this.input.templates ?? {};\n const defaultTemplates: ToolCallingAgentTemplates = {\n system: ToolCallingAgentSystemPrompt,\n task: ToolCallingAgentTaskPrompt,\n } as const;\n\n return mapObj(defaultTemplates)(\n (key, defaultTemplate: ToolCallingAgentTemplates[typeof key]) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n },\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory() {\n return this.input.memory;\n }\n}\n"]}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GetRunContext, MiddlewareType } from '../../context.cjs';
|
|
2
|
+
import { b as AgentMeta, a as BaseAgent } from '../../base-v-PYIq5G.cjs';
|
|
2
3
|
import { AnyTool } from '../../tools/base.cjs';
|
|
3
4
|
import { BaseMemory } from '../../memory/base.cjs';
|
|
4
|
-
import { E as Emitter } from '../../emitter-
|
|
5
|
+
import { E as Emitter } from '../../emitter-CGKd_-kK.cjs';
|
|
5
6
|
import { ToolCallingAgentTemplates, ToolCallingAgentExecutionConfig, ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions, ToolCallingAgentCallbacks } from './types.cjs';
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import '../../errors.cjs';
|
|
7
|
+
import { m as ChatModel } from '../../chat-DB_cf15S.cjs';
|
|
8
|
+
import '../../internals/serializable.cjs';
|
|
9
9
|
import '../../internals/types.cjs';
|
|
10
10
|
import '../../internals/helpers/guards.cjs';
|
|
11
|
-
import '../../internals/
|
|
11
|
+
import '../../internals/helpers/promise.cjs';
|
|
12
|
+
import '../../errors.cjs';
|
|
12
13
|
import 'ajv';
|
|
13
14
|
import 'promise-based-task';
|
|
14
15
|
import '../../cache/base.cjs';
|
|
15
16
|
import '../../internals/helpers/schema.cjs';
|
|
16
17
|
import 'zod';
|
|
17
18
|
import 'zod-to-json-schema';
|
|
18
|
-
import '../../internals/helpers/promise.cjs';
|
|
19
19
|
import '../../backend/message.cjs';
|
|
20
20
|
import 'ai';
|
|
21
21
|
import './prompts.cjs';
|
|
@@ -24,11 +24,6 @@ import '../../backend/constants.cjs';
|
|
|
24
24
|
import '../../logger/logger.cjs';
|
|
25
25
|
import 'pino';
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
29
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
27
|
type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (template: ToolCallingAgentTemplates[K]) => ToolCallingAgentTemplates[K];
|
|
33
28
|
interface ToolCallingAgentInput {
|
|
34
29
|
llm: ChatModel;
|
|
@@ -52,6 +47,7 @@ declare class ToolCallingAgent extends BaseAgent<ToolCallingAgentRunInput, ToolC
|
|
|
52
47
|
input: ToolCallingAgentInput;
|
|
53
48
|
emitter: Emitter<ToolCallingAgentCallbacks>;
|
|
54
49
|
isRunning: boolean;
|
|
50
|
+
middlewares: MiddlewareType<any>[];
|
|
55
51
|
};
|
|
56
52
|
set memory(memory: BaseMemory);
|
|
57
53
|
get memory(): BaseMemory;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GetRunContext, MiddlewareType } from '../../context.js';
|
|
2
|
+
import { b as AgentMeta, a as BaseAgent } from '../../base-BurRTBA7.js';
|
|
2
3
|
import { AnyTool } from '../../tools/base.js';
|
|
3
4
|
import { BaseMemory } from '../../memory/base.js';
|
|
4
|
-
import { E as Emitter } from '../../emitter-
|
|
5
|
+
import { E as Emitter } from '../../emitter-CN7I4uSV.js';
|
|
5
6
|
import { ToolCallingAgentTemplates, ToolCallingAgentExecutionConfig, ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions, ToolCallingAgentCallbacks } from './types.js';
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import '../../errors.js';
|
|
7
|
+
import { m as ChatModel } from '../../chat-BbCYMAdE.js';
|
|
8
|
+
import '../../internals/serializable.js';
|
|
9
9
|
import '../../internals/types.js';
|
|
10
10
|
import '../../internals/helpers/guards.js';
|
|
11
|
-
import '../../internals/
|
|
11
|
+
import '../../internals/helpers/promise.js';
|
|
12
|
+
import '../../errors.js';
|
|
12
13
|
import 'ajv';
|
|
13
14
|
import 'promise-based-task';
|
|
14
15
|
import '../../cache/base.js';
|
|
15
16
|
import '../../internals/helpers/schema.js';
|
|
16
17
|
import 'zod';
|
|
17
18
|
import 'zod-to-json-schema';
|
|
18
|
-
import '../../internals/helpers/promise.js';
|
|
19
19
|
import '../../backend/message.js';
|
|
20
20
|
import 'ai';
|
|
21
21
|
import './prompts.js';
|
|
@@ -24,11 +24,6 @@ import '../../backend/constants.js';
|
|
|
24
24
|
import '../../logger/logger.js';
|
|
25
25
|
import 'pino';
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
29
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
27
|
type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (template: ToolCallingAgentTemplates[K]) => ToolCallingAgentTemplates[K];
|
|
33
28
|
interface ToolCallingAgentInput {
|
|
34
29
|
llm: ChatModel;
|
|
@@ -52,6 +47,7 @@ declare class ToolCallingAgent extends BaseAgent<ToolCallingAgentRunInput, ToolC
|
|
|
52
47
|
input: ToolCallingAgentInput;
|
|
53
48
|
emitter: Emitter<ToolCallingAgentCallbacks>;
|
|
54
49
|
isRunning: boolean;
|
|
50
|
+
middlewares: MiddlewareType<any>[];
|
|
55
51
|
};
|
|
56
52
|
set memory(memory: BaseMemory);
|
|
57
53
|
get memory(): BaseMemory;
|
|
@@ -111,7 +111,7 @@ class ToolCallingAgent extends BaseAgent {
|
|
|
111
111
|
if (!tool) {
|
|
112
112
|
throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);
|
|
113
113
|
}
|
|
114
|
-
const toolInput = toolCall.
|
|
114
|
+
const toolInput = toolCall.input;
|
|
115
115
|
const toolResponse = await tool.run(toolInput).context({
|
|
116
116
|
state,
|
|
117
117
|
toolCallMsg: toolCall
|
|
@@ -120,8 +120,10 @@ class ToolCallingAgent extends BaseAgent {
|
|
|
120
120
|
type: "tool-result",
|
|
121
121
|
toolCallId: toolCall.toolCallId,
|
|
122
122
|
toolName: toolCall.toolName,
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
output: {
|
|
124
|
+
type: "text",
|
|
125
|
+
value: toolResponse.getTextContent()
|
|
126
|
+
}
|
|
125
127
|
}));
|
|
126
128
|
} catch (e) {
|
|
127
129
|
if (e instanceof ToolError) {
|
|
@@ -130,8 +132,10 @@ class ToolCallingAgent extends BaseAgent {
|
|
|
130
132
|
type: "tool-result",
|
|
131
133
|
toolCallId: toolCall.toolCallId,
|
|
132
134
|
toolName: toolCall.toolName,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
+
output: {
|
|
136
|
+
type: "error-text",
|
|
137
|
+
value: e.explain()
|
|
138
|
+
}
|
|
135
139
|
}));
|
|
136
140
|
} else {
|
|
137
141
|
throw e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/agents/toolCalling/agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","saveIntermediateSteps","register","_run","options","run","tempMessageKey","execution","totalMaxRetries","omitUndefined","state","memory","UnconstrainedMemory","result","undefined","iteration","add","SystemMessage","templates","system","render","role","instructions","addMany","messages","prompt","userMessage","UserMessage","task","context","expectedOutput","isString","globalRetriesCounter","RetryCounter","AgentError","usePlainResponse","ZodSchema","finalAnswerToolSchema","z","object","response","string","describe","String","finalAnswerTool","DynamicTool","name","description","inputSchema","handler","JSON","stringify","AssistantMessage","StringToolOutput","tools","forceFinalAnswer","Infinity","emit","llm","create","slice","toolChoice","length","stream","toolCallMessages","getToolCalls","toolCall","tool","find","toolName","toolInput","args","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","getTextContent","isError","e","ToolError","use","explain","textMessages","getTextMessages","isEmpty","deleteMany","filter","msg","meta","push","reset","extraDescription","map","join","overrides","defaultTemplates","ToolCallingAgentSystemPrompt","ToolCallingAgentTaskPrompt","mapObj","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","enumerable"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool, DynamicTool, StringToolOutput, ToolError, ToolOutput } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport type {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentTemplates,\n ToolCallingAgentCallbacks,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunState,\n} from \"@/agents/toolCalling/types.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { AssistantMessage, SystemMessage, ToolMessage, UserMessage } from \"@/backend/message.js\";\nimport { isEmpty, isString } from \"remeda\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { mapObj, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n ToolCallingAgentSystemPrompt,\n ToolCallingAgentTaskPrompt,\n} from \"@/agents/toolCalling/prompts.js\";\nimport { z, ZodSchema } from \"zod\";\n\nexport type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (\n template: ToolCallingAgentTemplates[K],\n) => ToolCallingAgentTemplates[K];\n\nexport interface ToolCallingAgentInput {\n llm: ChatModel;\n memory: BaseMemory;\n tools: AnyTool[];\n meta?: Omit<AgentMeta, \"tools\">;\n templates?: Partial<{\n [K in keyof ToolCallingAgentTemplates]:\n | ToolCallingAgentTemplates[K]\n | ToolCallingAgentTemplateFactory<K>;\n }>;\n execution?: ToolCallingAgentExecutionConfig;\n saveIntermediateSteps?: boolean;\n}\n\nexport class ToolCallingAgent extends BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<ToolCallingAgentCallbacks>({\n namespace: [\"agent\", \"toolCalling\"],\n creator: this,\n });\n\n constructor(public readonly input: ToolCallingAgentInput) {\n super();\n this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: ToolCallingAgentRunInput,\n options: ToolCallingAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<ToolCallingAgentRunOutput> {\n const tempMessageKey = \"tempMessage\" as const;\n const execution = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 10,\n ...omitUndefined(this.input.execution ?? {}),\n ...omitUndefined(options.execution ?? {}),\n };\n\n const state: ToolCallingAgentRunState = {\n memory: new UnconstrainedMemory(),\n result: undefined,\n iteration: 0,\n };\n await state.memory.add(\n new SystemMessage(\n this.templates.system.render({\n role: undefined,\n instructions: undefined,\n }),\n ),\n );\n await state.memory.addMany(this.memory.messages);\n\n if (input.prompt) {\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: isString(input.expectedOutput) ? input.expectedOutput : undefined,\n }),\n );\n await state.memory.add(userMessage);\n }\n\n const globalRetriesCounter = new RetryCounter(execution.totalMaxRetries || 1, AgentError);\n\n const usePlainResponse = !input.expectedOutput || !(input.expectedOutput instanceof ZodSchema);\n const finalAnswerToolSchema = usePlainResponse\n ? z.object({\n response: z.string().describe(String(input.expectedOutput ?? \"\")),\n })\n : (input.expectedOutput as ZodSchema);\n\n const finalAnswerTool = new DynamicTool({\n name: \"final_answer\",\n description: \"Sends the final answer to the user\",\n inputSchema: finalAnswerToolSchema,\n handler: async (input) => {\n const result = usePlainResponse ? input.response : JSON.stringify(input);\n state.result = new AssistantMessage(result);\n return new StringToolOutput(\"Message has been sent\");\n },\n });\n\n const tools = [...this.input.tools, finalAnswerTool];\n let forceFinalAnswer = false;\n\n while (!state.result) {\n state.iteration++;\n if (state.iteration > (execution.totalMaxRetries ?? Infinity)) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${state.iteration} iterations.`,\n );\n }\n\n await run.emitter.emit(\"start\", { state });\n const response = await this.input.llm.create({\n messages: state.memory.messages.slice(),\n tools,\n toolChoice: forceFinalAnswer ? finalAnswerTool : tools.length > 1 ? \"required\" : tools[0],\n stream: false,\n });\n await state.memory.addMany(response.messages);\n\n const toolCallMessages = response.getToolCalls();\n for (const toolCall of toolCallMessages) {\n try {\n const tool = tools.find((tool) => tool.name === toolCall.toolName);\n if (!tool) {\n throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);\n }\n\n const toolInput: any = toolCall.args;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolResponse.getTextContent(),\n isError: false,\n }),\n );\n } catch (e) {\n if (e instanceof ToolError) {\n globalRetriesCounter.use(e);\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: e.explain(),\n isError: true,\n }),\n );\n } else {\n throw e;\n }\n }\n }\n\n // handle empty messages for some models\n const textMessages = response.getTextMessages();\n if (isEmpty(toolCallMessages) && isEmpty(textMessages)) {\n await state.memory.add(new AssistantMessage(\"\\n\", { [tempMessageKey]: true }));\n } else {\n await state.memory.deleteMany(\n state.memory.messages.filter((msg) => msg.meta[tempMessageKey]),\n );\n }\n\n // Fallback for providers that do not support structured outputs\n if (!isEmpty(textMessages) && isEmpty(toolCallMessages)) {\n forceFinalAnswer = true;\n tools.length = 0;\n tools.push(finalAnswerTool);\n }\n\n await run.emitter.emit(\"success\", { state });\n }\n\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(state.memory.messages.slice(1));\n } else {\n await this.memory.addMany(state.memory.messages.slice(-2));\n }\n return { memory: state.memory, result: state.result };\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools.slice();\n\n if (this.input.meta) {\n return { ...this.input.meta, tools };\n }\n\n return {\n name: \"ToolCalling\",\n tools,\n description: \"ToolCallingAgent that uses tools to accomplish the task.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n @Cache({ enumerable: false })\n protected get templates(): ToolCallingAgentTemplates {\n const overrides = this.input.templates ?? {};\n const defaultTemplates: ToolCallingAgentTemplates = {\n system: ToolCallingAgentSystemPrompt,\n task: ToolCallingAgentTaskPrompt,\n } as const;\n\n return mapObj(defaultTemplates)(\n (key, defaultTemplate: ToolCallingAgentTemplates[typeof key]) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n },\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory() {\n return this.input.memory;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/agents/toolCalling/agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","saveIntermediateSteps","register","_run","options","run","tempMessageKey","execution","totalMaxRetries","omitUndefined","state","memory","UnconstrainedMemory","result","undefined","iteration","add","SystemMessage","templates","system","render","role","instructions","addMany","messages","prompt","userMessage","UserMessage","task","context","expectedOutput","isString","globalRetriesCounter","RetryCounter","AgentError","usePlainResponse","ZodSchema","finalAnswerToolSchema","z","object","response","string","describe","String","finalAnswerTool","DynamicTool","name","description","inputSchema","handler","JSON","stringify","AssistantMessage","StringToolOutput","tools","forceFinalAnswer","Infinity","emit","llm","create","slice","toolChoice","length","stream","toolCallMessages","getToolCalls","toolCall","tool","find","toolName","toolInput","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","output","value","getTextContent","e","ToolError","use","explain","textMessages","getTextMessages","isEmpty","deleteMany","filter","msg","meta","push","reset","extraDescription","map","join","overrides","defaultTemplates","ToolCallingAgentSystemPrompt","ToolCallingAgentTaskPrompt","mapObj","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","enumerable"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool, DynamicTool, StringToolOutput, ToolError, ToolOutput } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport type {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentTemplates,\n ToolCallingAgentCallbacks,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunState,\n} from \"@/agents/toolCalling/types.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { AssistantMessage, SystemMessage, ToolMessage, UserMessage } from \"@/backend/message.js\";\nimport { isEmpty, isString } from \"remeda\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { mapObj, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n ToolCallingAgentSystemPrompt,\n ToolCallingAgentTaskPrompt,\n} from \"@/agents/toolCalling/prompts.js\";\nimport { z, ZodSchema } from \"zod\";\n\nexport type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (\n template: ToolCallingAgentTemplates[K],\n) => ToolCallingAgentTemplates[K];\n\nexport interface ToolCallingAgentInput {\n llm: ChatModel;\n memory: BaseMemory;\n tools: AnyTool[];\n meta?: Omit<AgentMeta, \"tools\">;\n templates?: Partial<{\n [K in keyof ToolCallingAgentTemplates]:\n | ToolCallingAgentTemplates[K]\n | ToolCallingAgentTemplateFactory<K>;\n }>;\n execution?: ToolCallingAgentExecutionConfig;\n saveIntermediateSteps?: boolean;\n}\n\nexport class ToolCallingAgent extends BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<ToolCallingAgentCallbacks>({\n namespace: [\"agent\", \"toolCalling\"],\n creator: this,\n });\n\n constructor(public readonly input: ToolCallingAgentInput) {\n super();\n this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: ToolCallingAgentRunInput,\n options: ToolCallingAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<ToolCallingAgentRunOutput> {\n const tempMessageKey = \"tempMessage\" as const;\n const execution = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 10,\n ...omitUndefined(this.input.execution ?? {}),\n ...omitUndefined(options.execution ?? {}),\n };\n\n const state: ToolCallingAgentRunState = {\n memory: new UnconstrainedMemory(),\n result: undefined,\n iteration: 0,\n };\n await state.memory.add(\n new SystemMessage(\n this.templates.system.render({\n role: undefined,\n instructions: undefined,\n }),\n ),\n );\n await state.memory.addMany(this.memory.messages);\n\n if (input.prompt) {\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: isString(input.expectedOutput) ? input.expectedOutput : undefined,\n }),\n );\n await state.memory.add(userMessage);\n }\n\n const globalRetriesCounter = new RetryCounter(execution.totalMaxRetries || 1, AgentError);\n\n const usePlainResponse = !input.expectedOutput || !(input.expectedOutput instanceof ZodSchema);\n const finalAnswerToolSchema = usePlainResponse\n ? z.object({\n response: z.string().describe(String(input.expectedOutput ?? \"\")),\n })\n : (input.expectedOutput as ZodSchema);\n\n const finalAnswerTool = new DynamicTool({\n name: \"final_answer\",\n description: \"Sends the final answer to the user\",\n inputSchema: finalAnswerToolSchema,\n handler: async (input) => {\n const result = usePlainResponse ? input.response : JSON.stringify(input);\n state.result = new AssistantMessage(result);\n return new StringToolOutput(\"Message has been sent\");\n },\n });\n\n const tools = [...this.input.tools, finalAnswerTool];\n let forceFinalAnswer = false;\n\n while (!state.result) {\n state.iteration++;\n if (state.iteration > (execution.totalMaxRetries ?? Infinity)) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${state.iteration} iterations.`,\n );\n }\n\n await run.emitter.emit(\"start\", { state });\n const response = await this.input.llm.create({\n messages: state.memory.messages.slice(),\n tools,\n toolChoice: forceFinalAnswer ? finalAnswerTool : tools.length > 1 ? \"required\" : tools[0],\n stream: false,\n });\n await state.memory.addMany(response.messages);\n\n const toolCallMessages = response.getToolCalls();\n for (const toolCall of toolCallMessages) {\n try {\n const tool = tools.find((tool) => tool.name === toolCall.toolName);\n if (!tool) {\n throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);\n }\n\n const toolInput: any = toolCall.input;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n output: { type: \"text\", value: toolResponse.getTextContent() },\n }),\n );\n } catch (e) {\n if (e instanceof ToolError) {\n globalRetriesCounter.use(e);\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n output: { type: \"error-text\", value: e.explain() },\n }),\n );\n } else {\n throw e;\n }\n }\n }\n\n // handle empty messages for some models\n const textMessages = response.getTextMessages();\n if (isEmpty(toolCallMessages) && isEmpty(textMessages)) {\n await state.memory.add(new AssistantMessage(\"\\n\", { [tempMessageKey]: true }));\n } else {\n await state.memory.deleteMany(\n state.memory.messages.filter((msg) => msg.meta[tempMessageKey]),\n );\n }\n\n // Fallback for providers that do not support structured outputs\n if (!isEmpty(textMessages) && isEmpty(toolCallMessages)) {\n forceFinalAnswer = true;\n tools.length = 0;\n tools.push(finalAnswerTool);\n }\n\n await run.emitter.emit(\"success\", { state });\n }\n\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(state.memory.messages.slice(1));\n } else {\n await this.memory.addMany(state.memory.messages.slice(-2));\n }\n return { memory: state.memory, result: state.result };\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools.slice();\n\n if (this.input.meta) {\n return { ...this.input.meta, tools };\n }\n\n return {\n name: \"ToolCalling\",\n tools,\n description: \"ToolCallingAgent that uses tools to accomplish the task.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n @Cache({ enumerable: false })\n protected get templates(): ToolCallingAgentTemplates {\n const overrides = this.input.templates ?? {};\n const defaultTemplates: ToolCallingAgentTemplates = {\n system: ToolCallingAgentSystemPrompt,\n task: ToolCallingAgentTaskPrompt,\n } as const;\n\n return mapObj(defaultTemplates)(\n (key, defaultTemplate: ToolCallingAgentTemplates[typeof key]) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n },\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory() {\n return this.input.memory;\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseMemory } from '../../memory/base.cjs';
|
|
2
2
|
import { AssistantMessage } from '../../backend/message.cjs';
|
|
3
|
-
import { C as Callback } from '../../emitter-
|
|
3
|
+
import { C as Callback } from '../../emitter-CGKd_-kK.cjs';
|
|
4
4
|
import { ToolCallingAgentSystemPrompt, ToolCallingAgentTaskPrompt } from './prompts.cjs';
|
|
5
5
|
import { ZodSchema } from 'zod';
|
|
6
6
|
import '../../errors.cjs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseMemory } from '../../memory/base.js';
|
|
2
2
|
import { AssistantMessage } from '../../backend/message.js';
|
|
3
|
-
import { C as Callback } from '../../emitter-
|
|
3
|
+
import { C as Callback } from '../../emitter-CN7I4uSV.js';
|
|
4
4
|
import { ToolCallingAgentSystemPrompt, ToolCallingAgentTaskPrompt } from './prompts.js';
|
|
5
5
|
import { ZodSchema } from 'zod';
|
|
6
6
|
import '../../errors.js';
|
package/dist/agents/types.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { e as AgentCallback, d as AgentCallbackValue, b as AgentMeta, c as AnyAgent, G as GetAgentInput, f as GetAgentOutput, I as InternalAgentCallbackValue, P as PublicAgentCallbackValue } from '../base-
|
|
1
|
+
export { e as AgentCallback, d as AgentCallbackValue, b as AgentMeta, c as AnyAgent, G as GetAgentInput, f as GetAgentOutput, I as InternalAgentCallbackValue, P as PublicAgentCallbackValue } from '../base-v-PYIq5G.cjs';
|
|
2
2
|
import '../internals/types.cjs';
|
|
3
3
|
import '../tools/base.cjs';
|
|
4
4
|
import '../context.cjs';
|
|
5
|
-
import '../emitter-
|
|
5
|
+
import '../emitter-CGKd_-kK.cjs';
|
|
6
6
|
import '../internals/serializable.cjs';
|
|
7
7
|
import '../internals/helpers/guards.cjs';
|
|
8
8
|
import '../internals/helpers/promise.cjs';
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { e as AgentCallback, d as AgentCallbackValue, b as AgentMeta, c as AnyAgent, G as GetAgentInput, f as GetAgentOutput, I as InternalAgentCallbackValue, P as PublicAgentCallbackValue } from '../base-
|
|
1
|
+
export { e as AgentCallback, d as AgentCallbackValue, b as AgentMeta, c as AnyAgent, G as GetAgentInput, f as GetAgentOutput, I as InternalAgentCallbackValue, P as PublicAgentCallbackValue } from '../base-BurRTBA7.js';
|
|
2
2
|
import '../internals/types.js';
|
|
3
3
|
import '../tools/base.js';
|
|
4
4
|
import '../context.js';
|
|
5
|
-
import '../emitter-
|
|
5
|
+
import '../emitter-CN7I4uSV.js';
|
|
6
6
|
import '../internals/serializable.js';
|
|
7
7
|
import '../internals/helpers/guards.js';
|
|
8
8
|
import '../internals/helpers/promise.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Serializable } from '../internals/serializable.cjs';
|
|
2
|
-
import { m as ChatModel, F as FullModelName } from '../chat-
|
|
2
|
+
import { m as ChatModel, F as FullModelName } from '../chat-DB_cf15S.cjs';
|
|
3
3
|
import { EmbeddingModel } from './embedding.cjs';
|
|
4
4
|
import { ProviderName } from './constants.cjs';
|
|
5
5
|
import { OptionalExcept } from '../internals/types.cjs';
|
|
6
6
|
import './message.cjs';
|
|
7
7
|
import 'ai';
|
|
8
8
|
import '../context.cjs';
|
|
9
|
-
import '../emitter-
|
|
9
|
+
import '../emitter-CGKd_-kK.cjs';
|
|
10
10
|
import '../internals/helpers/promise.cjs';
|
|
11
11
|
import '../errors.cjs';
|
|
12
12
|
import 'promise-based-task';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Serializable } from '../internals/serializable.js';
|
|
2
|
-
import { m as ChatModel, F as FullModelName } from '../chat-
|
|
2
|
+
import { m as ChatModel, F as FullModelName } from '../chat-BbCYMAdE.js';
|
|
3
3
|
import { EmbeddingModel } from './embedding.js';
|
|
4
4
|
import { ProviderName } from './constants.js';
|
|
5
5
|
import { OptionalExcept } from '../internals/types.js';
|
|
6
6
|
import './message.js';
|
|
7
7
|
import 'ai';
|
|
8
8
|
import '../context.js';
|
|
9
|
-
import '../emitter-
|
|
9
|
+
import '../emitter-CN7I4uSV.js';
|
|
10
10
|
import '../internals/helpers/promise.js';
|
|
11
11
|
import '../errors.js';
|
|
12
12
|
import 'promise-based-task';
|