beeai-framework 0.1.29 → 0.1.30
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.map +1 -1
- package/dist/adapters/a2a/agents/agent.d.cts +2 -2
- package/dist/adapters/a2a/agents/agent.d.ts +2 -2
- 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 +52 -11
- package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
- package/dist/adapters/a2a/agents/utils.js +52 -11
- package/dist/adapters/a2a/agents/utils.js.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
- package/dist/adapters/a2a/serve/server.cjs.map +1 -1
- package/dist/adapters/a2a/serve/server.d.cts +2 -2
- package/dist/adapters/a2a/serve/server.d.ts +2 -2
- package/dist/adapters/a2a/serve/server.js.map +1 -1
- package/dist/adapters/acp/agents/agent.cjs.map +1 -1
- package/dist/adapters/acp/agents/agent.d.cts +2 -2
- package/dist/adapters/acp/agents/agent.d.ts +2 -2
- package/dist/adapters/acp/agents/agent.js.map +1 -1
- package/dist/adapters/acp/agents/events.d.cts +1 -1
- package/dist/adapters/acp/agents/events.d.ts +1 -1
- package/dist/adapters/agentstack/agents/agent.cjs.map +1 -1
- package/dist/adapters/agentstack/agents/agent.d.cts +2 -2
- package/dist/adapters/agentstack/agents/agent.d.ts +2 -2
- package/dist/adapters/agentstack/agents/agent.js.map +1 -1
- package/dist/adapters/agentstack/agents/events.d.cts +1 -1
- package/dist/adapters/agentstack/agents/events.d.ts +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
- package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/chat.d.cts +2 -2
- package/dist/adapters/anthropic/backend/chat.d.ts +2 -2
- package/dist/adapters/anthropic/backend/chat.js.map +1 -1
- package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/client.js.map +1 -1
- package/dist/adapters/anthropic/backend/embedding.cjs.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/anthropic/backend/embedding.js.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.d.cts +3 -3
- package/dist/adapters/azure-openai/backend/chat.d.ts +3 -3
- package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
- package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/client.js.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
- package/dist/adapters/dummy/backend/chat.cjs.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/chat.js.map +1 -1
- package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
- package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
- package/dist/adapters/dummy/backend/embedding.js.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.d.cts +3 -3
- package/dist/adapters/google-vertex/backend/chat.d.ts +3 -3
- package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
- package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/client.js.map +1 -1
- package/dist/adapters/google-vertex/backend/embedding.cjs.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/google-vertex/backend/embedding.js.map +1 -1
- package/dist/adapters/groq/backend/chat.cjs.map +1 -1
- package/dist/adapters/groq/backend/chat.d.cts +3 -3
- package/dist/adapters/groq/backend/chat.d.ts +3 -3
- package/dist/adapters/groq/backend/chat.js.map +1 -1
- package/dist/adapters/groq/backend/client.cjs.map +1 -1
- package/dist/adapters/groq/backend/client.js.map +1 -1
- package/dist/adapters/groq/backend/embedding.cjs.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/groq/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/chat.cjs +6 -28
- package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
- package/dist/adapters/langchain/backend/chat.d.cts +6 -5
- package/dist/adapters/langchain/backend/chat.d.ts +6 -5
- package/dist/adapters/langchain/backend/chat.js +6 -28
- package/dist/adapters/langchain/backend/chat.js.map +1 -1
- package/dist/adapters/langchain/backend/embedding.cjs +3 -2
- package/dist/adapters/langchain/backend/embedding.cjs.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/backend/embedding.js +3 -2
- package/dist/adapters/langchain/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/utils.cjs +328 -0
- package/dist/adapters/langchain/backend/utils.cjs.map +1 -0
- package/dist/adapters/langchain/backend/utils.d.cts +39 -0
- package/dist/adapters/langchain/backend/utils.d.ts +39 -0
- package/dist/adapters/langchain/backend/utils.js +324 -0
- package/dist/adapters/langchain/backend/utils.js.map +1 -0
- package/dist/adapters/langchain/tools.cjs.map +1 -1
- package/dist/adapters/langchain/tools.d.cts +2 -2
- package/dist/adapters/langchain/tools.d.ts +2 -2
- package/dist/adapters/langchain/tools.js.map +1 -1
- package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
- package/dist/adapters/mcp/serve/http_server.js.map +1 -1
- package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
- package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
- package/dist/adapters/mcp/serve/server.cjs.map +1 -1
- package/dist/adapters/mcp/serve/server.js.map +1 -1
- package/dist/adapters/minimax/backend/chat.cjs +25 -0
- package/dist/adapters/minimax/backend/chat.cjs.map +1 -0
- package/dist/adapters/minimax/backend/chat.d.cts +38 -0
- package/dist/adapters/minimax/backend/chat.d.ts +38 -0
- package/dist/adapters/minimax/backend/chat.js +23 -0
- package/dist/adapters/minimax/backend/chat.js.map +1 -0
- package/dist/adapters/minimax/backend/client.cjs +31 -0
- package/dist/adapters/minimax/backend/client.cjs.map +1 -0
- package/dist/adapters/minimax/backend/client.d.cts +17 -0
- package/dist/adapters/minimax/backend/client.d.ts +17 -0
- package/dist/adapters/minimax/backend/client.js +29 -0
- package/dist/adapters/minimax/backend/client.js.map +1 -0
- package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
- package/dist/adapters/ollama/backend/chat.d.cts +2 -2
- package/dist/adapters/ollama/backend/chat.d.ts +2 -2
- package/dist/adapters/ollama/backend/chat.js.map +1 -1
- package/dist/adapters/ollama/backend/client.cjs.map +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 +2 -2
- package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
- package/dist/adapters/ollama/backend/embedding.js.map +1 -1
- package/dist/adapters/openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/openai/backend/chat.d.cts +2 -2
- package/dist/adapters/openai/backend/chat.d.ts +2 -2
- package/dist/adapters/openai/backend/chat.js.map +1 -1
- package/dist/adapters/openai/backend/client.cjs.map +1 -1
- package/dist/adapters/openai/backend/client.js.map +1 -1
- package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/openai/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.d.cts +2 -2
- package/dist/adapters/vercel/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
- package/dist/adapters/vercel/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +2 -2
- package/dist/adapters/vercel/backend/utils.d.ts +2 -2
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- 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 +1 -1
- package/dist/adapters/watsonx/backend/chat.js.map +1 -1
- package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/client.js.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.cjs.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/watsonx/backend/embedding.js.map +1 -1
- package/dist/adapters/xai/backend/chat.cjs.map +1 -1
- package/dist/adapters/xai/backend/chat.d.cts +2 -2
- package/dist/adapters/xai/backend/chat.d.ts +2 -2
- package/dist/adapters/xai/backend/chat.js.map +1 -1
- package/dist/adapters/xai/backend/client.cjs.map +1 -1
- package/dist/adapters/xai/backend/client.js.map +1 -1
- package/dist/{agent-CZGWXO-X.d.ts → agent-s3uhvAba.d.ts} +4 -4
- package/dist/{agent-PRlGoawI.d.cts → agent-zfT__iq9.d.cts} +4 -4
- 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.map +1 -1
- package/dist/agents/experimental/replan/agent.cjs.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/agent.js.map +1 -1
- package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
- package/dist/agents/experimental/replan/prompts.d.cts +1 -1
- package/dist/agents/experimental/replan/prompts.d.ts +1 -1
- package/dist/agents/experimental/replan/prompts.js.map +1 -1
- package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/agent.d.cts +3 -3
- package/dist/agents/experimental/streamlit/agent.d.ts +3 -3
- package/dist/agents/experimental/streamlit/agent.js.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.cjs +2 -2
- package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.js +2 -2
- package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
- package/dist/agents/react/agent.cjs +6 -6
- package/dist/agents/react/agent.cjs.map +1 -1
- package/dist/agents/react/agent.d.cts +4 -4
- package/dist/agents/react/agent.d.ts +4 -4
- package/dist/agents/react/agent.js.map +1 -1
- package/dist/agents/react/prompts.cjs.map +1 -1
- package/dist/agents/react/prompts.js.map +1 -1
- package/dist/agents/react/runners/base.cjs.map +1 -1
- package/dist/agents/react/runners/base.d.cts +4 -4
- package/dist/agents/react/runners/base.d.ts +4 -4
- package/dist/agents/react/runners/base.js.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
- package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
- package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
- package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
- package/dist/agents/react/runners/default/runner.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.d.cts +4 -4
- package/dist/agents/react/runners/default/runner.d.ts +4 -4
- package/dist/agents/react/runners/default/runner.js.map +1 -1
- package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
- package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
- package/dist/agents/react/runners/granite/prompts.js.map +1 -1
- package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
- package/dist/agents/react/runners/granite/runner.d.cts +4 -4
- package/dist/agents/react/runners/granite/runner.d.ts +4 -4
- package/dist/agents/react/runners/granite/runner.js.map +1 -1
- package/dist/agents/react/types.d.cts +2 -2
- package/dist/agents/react/types.d.ts +2 -2
- package/dist/agents/requirement/agent.cjs.map +1 -1
- package/dist/agents/requirement/agent.d.cts +5 -5
- package/dist/agents/requirement/agent.d.ts +5 -5
- package/dist/agents/requirement/agent.js.map +1 -1
- package/dist/agents/requirement/prompts.d.cts +8 -8
- package/dist/agents/requirement/prompts.d.ts +8 -8
- package/dist/agents/requirement/requirements/conditional.cjs.map +1 -1
- package/dist/agents/requirement/requirements/conditional.d.cts +5 -5
- package/dist/agents/requirement/requirements/conditional.d.ts +5 -5
- package/dist/agents/requirement/requirements/conditional.js.map +1 -1
- package/dist/agents/requirement/requirements/requirement.cjs.map +1 -1
- package/dist/agents/requirement/requirements/requirement.d.cts +4 -4
- package/dist/agents/requirement/requirements/requirement.d.ts +4 -4
- package/dist/agents/requirement/requirements/requirement.js.map +1 -1
- package/dist/agents/requirement/requirements/utils.cjs.map +1 -1
- package/dist/agents/requirement/requirements/utils.d.cts +1 -1
- package/dist/agents/requirement/requirements/utils.d.ts +1 -1
- package/dist/agents/requirement/requirements/utils.js.map +1 -1
- package/dist/agents/requirement/runner.cjs.map +1 -1
- package/dist/agents/requirement/runner.d.cts +5 -5
- package/dist/agents/requirement/runner.d.ts +5 -5
- package/dist/agents/requirement/runner.js.map +1 -1
- package/dist/agents/requirement/types.d.cts +4 -4
- package/dist/agents/requirement/types.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.cjs.map +1 -1
- package/dist/agents/requirement/utils/llm.d.cts +4 -4
- package/dist/agents/requirement/utils/llm.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.js.map +1 -1
- package/dist/agents/requirement/utils/tool.cjs.map +1 -1
- package/dist/agents/requirement/utils/tool.d.cts +4 -4
- package/dist/agents/requirement/utils/tool.d.ts +4 -4
- package/dist/agents/requirement/utils/tool.js.map +1 -1
- package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -1
- package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -1
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.d.cts +4 -4
- package/dist/agents/toolCalling/agent.d.ts +4 -4
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/agents/toolCalling/prompts.cjs.map +1 -1
- package/dist/agents/toolCalling/prompts.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.cjs.map +1 -1
- package/dist/backend/backend.d.cts +3 -3
- package/dist/backend/backend.d.ts +3 -3
- package/dist/backend/backend.js.map +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.map +1 -1
- package/dist/backend/client.cjs.map +1 -1
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/constants.cjs +7 -0
- package/dist/backend/constants.cjs.map +1 -1
- package/dist/backend/constants.d.cts +5 -0
- package/dist/backend/constants.d.ts +5 -0
- package/dist/backend/constants.js +7 -0
- package/dist/backend/constants.js.map +1 -1
- package/dist/backend/core.d.cts +2 -2
- package/dist/backend/core.d.ts +2 -2
- package/dist/backend/embedding.cjs.map +1 -1
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/embedding.js.map +1 -1
- package/dist/backend/errors.cjs.map +1 -1
- package/dist/backend/errors.d.cts +2 -2
- package/dist/backend/errors.d.ts +2 -2
- package/dist/backend/errors.js.map +1 -1
- package/dist/backend/message.cjs.map +1 -1
- package/dist/backend/message.js.map +1 -1
- package/dist/backend/utils.cjs.map +1 -1
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/backend/utils.js.map +1 -1
- package/dist/{base-CyFx7BRL.d.ts → base-BjzyQ8k6.d.ts} +2 -2
- package/dist/{base-XfWeXQ-S.d.cts → base-s3ioVIE9.d.cts} +2 -2
- package/dist/cache/decoratorCache.cjs.map +1 -1
- package/dist/cache/decoratorCache.js.map +1 -1
- package/dist/cache/fileCache.cjs.map +1 -1
- package/dist/cache/fileCache.js.map +1 -1
- package/dist/cache/nullCache.cjs.map +1 -1
- package/dist/cache/nullCache.js.map +1 -1
- package/dist/cache/slidingCache.cjs.map +1 -1
- package/dist/cache/slidingCache.js.map +1 -1
- package/dist/cache/unconstrainedCache.cjs.map +1 -1
- package/dist/cache/unconstrainedCache.js.map +1 -1
- package/dist/{chat-BFl85cqt.d.cts → chat-C20nYj46.d.cts} +3 -3
- package/dist/{chat-BRuyDeKR.d.ts → chat-CfTNfR60.d.ts} +3 -3
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.js.map +1 -1
- 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.map +1 -1
- package/dist/emitter/types.d.cts +1 -1
- package/dist/emitter/types.d.ts +1 -1
- package/dist/emitter/utils.cjs.map +1 -1
- package/dist/emitter/utils.js.map +1 -1
- package/dist/{emitter-jN55XZZq.d.cts → emitter-D4OcelZ9.d.cts} +1 -1
- package/dist/{emitter-36-9MnvA.d.ts → emitter-kHxkUxco.d.ts} +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/internals/env.cjs.map +1 -1
- package/dist/internals/env.js.map +1 -1
- package/dist/internals/fetcher.cjs.map +1 -1
- package/dist/internals/fetcher.d.cts +1 -1
- package/dist/internals/fetcher.d.ts +1 -1
- package/dist/internals/fetcher.js.map +1 -1
- package/dist/internals/helpers/array.cjs.map +1 -1
- package/dist/internals/helpers/array.js.map +1 -1
- package/dist/internals/helpers/cancellation.cjs.map +1 -1
- package/dist/internals/helpers/cancellation.js.map +1 -1
- package/dist/internals/helpers/counter.cjs.map +1 -1
- package/dist/internals/helpers/counter.js.map +1 -1
- package/dist/internals/helpers/general.cjs.map +1 -1
- package/dist/internals/helpers/general.js.map +1 -1
- package/dist/internals/helpers/hash.cjs.map +1 -1
- package/dist/internals/helpers/hash.js.map +1 -1
- package/dist/internals/helpers/map.cjs.map +1 -1
- package/dist/internals/helpers/map.js.map +1 -1
- package/dist/internals/helpers/math.cjs.map +1 -1
- package/dist/internals/helpers/math.js.map +1 -1
- package/dist/internals/helpers/object.cjs +7 -1
- package/dist/internals/helpers/object.cjs.map +1 -1
- package/dist/internals/helpers/object.js +7 -1
- package/dist/internals/helpers/object.js.map +1 -1
- package/dist/internals/helpers/paginate.cjs.map +1 -1
- package/dist/internals/helpers/paginate.js.map +1 -1
- package/dist/internals/helpers/promise.cjs.map +1 -1
- package/dist/internals/helpers/promise.js.map +1 -1
- package/dist/internals/helpers/prototype.cjs.map +1 -1
- package/dist/internals/helpers/prototype.js.map +1 -1
- package/dist/internals/helpers/retry.cjs.map +1 -1
- package/dist/internals/helpers/retry.js.map +1 -1
- package/dist/internals/helpers/retryable.cjs.map +1 -1
- package/dist/internals/helpers/retryable.js.map +1 -1
- package/dist/internals/helpers/schema.cjs.map +1 -1
- package/dist/internals/helpers/schema.d.cts +4 -4
- package/dist/internals/helpers/schema.d.ts +4 -4
- package/dist/internals/helpers/schema.js.map +1 -1
- package/dist/internals/helpers/stream.cjs.map +1 -1
- package/dist/internals/helpers/stream.js.map +1 -1
- package/dist/internals/helpers/string.cjs.map +1 -1
- package/dist/internals/helpers/string.js.map +1 -1
- package/dist/internals/helpers/weakRef.cjs.map +1 -1
- package/dist/internals/helpers/weakRef.js.map +1 -1
- package/dist/internals/serializable.cjs +3 -1
- package/dist/internals/serializable.cjs.map +1 -1
- package/dist/internals/serializable.d.cts +6 -0
- package/dist/internals/serializable.d.ts +6 -0
- package/dist/internals/serializable.js +3 -1
- package/dist/internals/serializable.js.map +1 -1
- package/dist/internals/types.cjs.map +1 -1
- package/dist/internals/types.js.map +1 -1
- package/dist/logger/logger.cjs.map +1 -1
- package/dist/logger/logger.d.cts +2 -2
- package/dist/logger/logger.d.ts +2 -2
- package/dist/logger/logger.js +2 -2
- package/dist/logger/logger.js.map +1 -1
- package/dist/logger/pretty.cjs.map +1 -1
- package/dist/logger/pretty.js.map +1 -1
- package/dist/memory/base.cjs.map +1 -1
- package/dist/memory/base.js.map +1 -1
- package/dist/memory/slidingMemory.cjs.map +1 -1
- package/dist/memory/slidingMemory.js.map +1 -1
- package/dist/memory/summarizeMemory.cjs.map +1 -1
- package/dist/memory/summarizeMemory.d.cts +2 -2
- package/dist/memory/summarizeMemory.d.ts +2 -2
- package/dist/memory/summarizeMemory.js.map +1 -1
- package/dist/memory/tokenMemory.cjs.map +1 -1
- package/dist/memory/tokenMemory.js.map +1 -1
- package/dist/memory/unconstrainedMemory.cjs.map +1 -1
- package/dist/memory/unconstrainedMemory.js.map +1 -1
- package/dist/middleware/streamToolCall.cjs.map +1 -1
- package/dist/middleware/streamToolCall.d.cts +2 -2
- package/dist/middleware/streamToolCall.d.ts +2 -2
- package/dist/middleware/streamToolCall.js.map +1 -1
- package/dist/middleware/trajectory.cjs.map +1 -1
- package/dist/middleware/trajectory.d.cts +2 -2
- package/dist/middleware/trajectory.d.ts +2 -2
- package/dist/middleware/trajectory.js.map +1 -1
- package/dist/parsers/errors.cjs.map +1 -1
- package/dist/parsers/errors.js.map +1 -1
- package/dist/parsers/field.cjs.map +1 -1
- package/dist/parsers/field.js.map +1 -1
- package/dist/parsers/linePrefix.cjs.map +1 -1
- package/dist/parsers/linePrefix.d.cts +1 -1
- package/dist/parsers/linePrefix.d.ts +1 -1
- package/dist/parsers/linePrefix.js.map +1 -1
- package/dist/serializer/error.cjs.map +1 -1
- package/dist/serializer/error.js.map +1 -1
- package/dist/serializer/serializer.cjs +16 -3
- 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 +16 -4
- package/dist/serializer/serializer.js.map +1 -1
- 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.map +1 -1
- package/dist/{serializer-53t8gGQa.d.ts → serializer-BafOT48s.d.ts} +10 -4
- package/dist/{serializer-c51B2z6d.d.cts → serializer-CFDWYUco.d.cts} +10 -4
- package/dist/serve/server.cjs.map +1 -1
- package/dist/serve/server.js.map +1 -1
- package/dist/template.cjs.map +1 -1
- package/dist/template.js.map +1 -1
- package/dist/tools/arxiv.cjs.map +1 -1
- package/dist/tools/arxiv.d.cts +2 -2
- package/dist/tools/arxiv.d.ts +2 -2
- package/dist/tools/arxiv.js.map +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.d.cts +1 -1
- package/dist/tools/base.d.ts +1 -1
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/calculator.cjs.map +1 -1
- package/dist/tools/calculator.d.cts +3 -3
- package/dist/tools/calculator.d.ts +3 -3
- package/dist/tools/calculator.js.map +1 -1
- package/dist/tools/custom.cjs.map +1 -1
- package/dist/tools/custom.d.cts +3 -3
- package/dist/tools/custom.d.ts +3 -3
- package/dist/tools/custom.js.map +1 -1
- package/dist/tools/database/elasticsearch.cjs.map +1 -1
- package/dist/tools/database/elasticsearch.d.cts +3 -3
- package/dist/tools/database/elasticsearch.d.ts +3 -3
- package/dist/tools/database/elasticsearch.js.map +1 -1
- package/dist/tools/database/metadata.cjs.map +1 -1
- package/dist/tools/database/metadata.js.map +1 -1
- package/dist/tools/database/milvus.cjs.map +1 -1
- package/dist/tools/database/milvus.d.cts +5 -5
- package/dist/tools/database/milvus.d.ts +5 -5
- package/dist/tools/database/milvus.js.map +1 -1
- package/dist/tools/database/qdrant.cjs.map +1 -1
- package/dist/tools/database/qdrant.d.cts +2 -2
- package/dist/tools/database/qdrant.d.ts +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 +2 -2
- package/dist/tools/database/sql.d.ts +2 -2
- package/dist/tools/database/sql.js.map +1 -1
- package/dist/tools/handoff.cjs.map +1 -1
- package/dist/tools/handoff.d.cts +2 -2
- package/dist/tools/handoff.d.ts +2 -2
- package/dist/tools/handoff.js.map +1 -1
- package/dist/tools/llm.cjs +1 -1
- package/dist/tools/llm.cjs.map +1 -1
- package/dist/tools/llm.d.cts +3 -3
- package/dist/tools/llm.d.ts +3 -3
- package/dist/tools/llm.js +1 -1
- package/dist/tools/llm.js.map +1 -1
- package/dist/tools/mcp.cjs.map +1 -1
- package/dist/tools/mcp.d.cts +2 -2
- package/dist/tools/mcp.d.ts +2 -2
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/openapi.cjs.map +1 -1
- package/dist/tools/openapi.d.cts +2 -2
- package/dist/tools/openapi.d.ts +2 -2
- package/dist/tools/openapi.js.map +1 -1
- package/dist/tools/python/output.cjs.map +1 -1
- package/dist/tools/python/output.d.cts +1 -1
- package/dist/tools/python/output.d.ts +1 -1
- package/dist/tools/python/output.js.map +1 -1
- package/dist/tools/python/python.cjs +5 -2
- package/dist/tools/python/python.cjs.map +1 -1
- package/dist/tools/python/python.d.cts +3 -3
- package/dist/tools/python/python.d.ts +3 -3
- package/dist/tools/python/python.js +5 -2
- package/dist/tools/python/python.js.map +1 -1
- package/dist/tools/python/storage.cjs.map +1 -1
- package/dist/tools/python/storage.js.map +1 -1
- package/dist/tools/search/base.cjs.map +1 -1
- package/dist/tools/search/base.d.cts +2 -2
- package/dist/tools/search/base.d.ts +2 -2
- 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 +2 -2
- package/dist/tools/search/duckDuckGoSearch.d.ts +2 -2
- 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 +2 -2
- package/dist/tools/search/googleSearch.d.ts +2 -2
- package/dist/tools/search/googleSearch.js.map +1 -1
- package/dist/tools/search/searXNGSearch.cjs.map +1 -1
- package/dist/tools/search/searXNGSearch.d.cts +2 -2
- package/dist/tools/search/searXNGSearch.d.ts +2 -2
- package/dist/tools/search/searXNGSearch.js.map +1 -1
- package/dist/tools/search/wikipedia.cjs.map +1 -1
- package/dist/tools/search/wikipedia.d.cts +3 -3
- package/dist/tools/search/wikipedia.d.ts +3 -3
- package/dist/tools/search/wikipedia.js.map +1 -1
- package/dist/tools/similarity.cjs.map +1 -1
- package/dist/tools/similarity.d.cts +2 -2
- package/dist/tools/similarity.d.ts +2 -2
- package/dist/tools/similarity.js.map +1 -1
- package/dist/tools/think.cjs.map +1 -1
- package/dist/tools/think.d.cts +2 -2
- package/dist/tools/think.d.ts +2 -2
- package/dist/tools/think.js.map +1 -1
- package/dist/tools/weather/openMeteo.cjs.map +1 -1
- package/dist/tools/weather/openMeteo.d.cts +2 -2
- package/dist/tools/weather/openMeteo.d.ts +2 -2
- 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 +2 -2
- package/dist/tools/web/webCrawler.d.ts +2 -2
- package/dist/tools/web/webCrawler.js.map +1 -1
- package/dist/{types-CkEtV8R9.d.cts → types-BNsa3W7Z.d.cts} +4 -4
- package/dist/{types-BQ-3LdkE.d.ts → types-DYtzF6ya.d.ts} +4 -4
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/workflows/agent.cjs.map +1 -1
- package/dist/workflows/agent.d.cts +40 -40
- package/dist/workflows/agent.d.ts +40 -40
- package/dist/workflows/agent.js.map +1 -1
- package/dist/workflows/workflow.cjs.map +1 -1
- package/dist/workflows/workflow.d.cts +1 -1
- package/dist/workflows/workflow.d.ts +1 -1
- package/dist/workflows/workflow.js.map +1 -1
- package/package.json +33 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/agents/requirement/runner.ts"],"names":["TEMP_MESSAGE_KEY","RequirementAgentRunner","state","reasoner","iterationErrorCounter","globalErrorCounter","llm","runConfig","tools","requirements","expectedOutput","toolCallCycleChecker","ctx","forceFinalAnswerAsTool","templates","answer","result","memory","UnconstrainedMemory","steps","iteration","usage","totalTokens","promptTokens","completionTokens","reasoningTokens","cachedPromptTokens","undefined","finalAnswer","FinalAnswerTool","RequirementsReasoner","maxRetriesPerIteration","maxRetriesPerStep","RetryCounter","AgentError","maxRetries","Math","max","totalMaxRetries","incrementIteration","maxIterations","runLLM","request","streamMiddleware","createFinalAnswerStream","input","prepareLLMRequest","response","create","middleware","catch","err","ChatModelToolCallError","canStop","generatedContent","errorResponse","data","ChatModelOutput","AssistantMessage","finishReason","mergeTokenUsage","unbind","messages","createSystemMessage","system","allowedTools","toolChoice","streamPartialToolCalls","createFinalAnswerToolCall","fullText","parsed","parseBrokenJson","pair","customSchema","type","toolCallId","uuidv4","substring","toolName","name","inputSchema","parse","createRequest","extraRules","invokeToolCalls","toolCalls","toolResults","results","Promise","all","map","msg","runTool","toolCall","push","id","output","tool","error","toolError","render","reason","explain","isEmpty","getTextContent","toolNoResult","ToolMessage","value","use","addMessages","addMany","run","update","emitter","emit","runIteration","getToolCalls","length","textMessages","getTextMessages","text","m","join","finalAnswerToolCall","stream","add","updatedRequest","target","allowed","hidden","forced","preventStop","toolCallMsg","register","cycleFound","reset","tempMessages","filter","meta","deleteMany","StreamToolCallMiddleware","forceStreaming","key","matchNested","on","_","delta","outputStructured"],"mappings":";;;;;;;;;;;;;;;AA+BA,MAAMA,gBAAAA,GAAmB,aAAA;AAKlB,MAAMC,sBAAAA,CAAAA;EApCb;;;;;;;;;;AAqCqBC,EAAAA,KAAAA;AACAC,EAAAA,QAAAA;AACAC,EAAAA,qBAAAA;AACAC,EAAAA,kBAAAA;EAEnB,WAAA,CACqBC,GAAAA,EACAC,WACnBC,KAAAA,EACmBC,YAAAA,EACnBC,gBACmBC,oBAAAA,EACAC,GAAAA,EACTC,wBACSC,SAAAA,EACnB;SATmBR,GAAAA,GAAAA,GAAAA;SACAC,SAAAA,GAAAA,SAAAA;SAEAE,YAAAA,GAAAA,YAAAA;SAEAE,oBAAAA,GAAAA,oBAAAA;SACAC,GAAAA,GAAAA,GAAAA;SACTC,sBAAAA,GAAAA,sBAAAA;SACSC,SAAAA,GAAAA,SAAAA;AAEnB,IAAA,IAAA,CAAKZ,KAAAA,GAAQ;MACXa,MAAAA,EAAQ,IAAA;MACRC,MAAAA,EAAQ,IAAA;AACRC,MAAAA,MAAAA,EAAQ,IAAIC,mBAAAA,EAAAA;AACZC,MAAAA,KAAAA,EAAO,EAAA;MACPC,SAAAA,EAAW,CAAA;MACXC,KAAAA,EAAO;QACLC,WAAAA,EAAa,CAAA;QACbC,YAAAA,EAAc,CAAA;QACdC,gBAAAA,EAAkB,CAAA;QAClBC,eAAAA,EAAiB,CAAA;QACjBC,kBAAAA,EAAoBC;AACtB;AACF,KAAA;AAEA,IAAA,IAAA,CAAKlB,YAAAA,GAAeA,YAAAA;AACpB,IAAA,MAAMmB,WAAAA,GAAc,IAAIC,eAAAA,CAAgBnB,cAAAA,EAAgB,KAAKR,KAAK,CAAA;AAClE,IAAA,IAAA,CAAKC,QAAAA,GAAW,IAAI2B,oBAAAA,CAAqBtB,KAAAA,EAAOoB,aAAahB,GAAAA,CAAAA;AAE7D,IAAA,MAAMmB,sBAAAA,GAAyBxB,UAAUyB,iBAAAA,IAAqB,CAAA;AAC9D,IAAA,IAAA,CAAK5B,qBAAAA,GAAwB,IAAI6B,YAAAA,CAAaF,sBAAAA,EAAwBG,UAAAA,CAAAA;AAEtE,IAAA,MAAMC,aAAaC,IAAAA,CAAKC,GAAAA,CAAIN,sBAAAA,EAAwBxB,SAAAA,CAAU+B,mBAAmB,CAAA,CAAA;AACjF,IAAA,IAAA,CAAKjC,kBAAAA,GAAqB,IAAI4B,YAAAA,CAAaE,UAAAA,EAAYD,UAAAA,CAAAA;AACzD;EAEUK,kBAAAA,GAA2B;AACnC,IAAA,IAAA,CAAKrC,KAAAA,CAAMkB,SAAAA,EAAAA;AAEX,IAAA,IAAI,IAAA,CAAKb,UAAUiC,aAAAA,IAAiB,IAAA,CAAKtC,MAAMkB,SAAAA,GAAY,IAAA,CAAKb,UAAUiC,aAAAA,EAAe;AACvF,MAAA,MAAM,IAAIN,UAAAA,CACR,CAAA,0CAAA,EAA6C,IAAA,CAAKhC,KAAAA,CAAMkB,SAAS,CAAA,YAAA,CAAc,CAAA;AAEnF;AACF;AAEA,EAAA,MAAgBqB,OAAOC,OAAAA,EAA4D;AACjF,IAAA,MAAMC,gBAAAA,GAAmB,IAAA,CAAKC,uBAAAA,CAAwBF,OAAAA,CAAQd,WAAW,CAAA;AACzE,IAAA,IAAI;AACF,MAAA,MAAMiB,KAAAA,GAAQ,MAAM,IAAA,CAAKC,iBAAAA,CAAkBJ,OAAAA,CAAAA;AAC3C,MAAA,MAAMK,QAAAA,GAAW,MAAM,IAAA,CAAKzC,GAAAA,CACzB0C,MAAAA,CAAOH,KAAAA,CAAAA,CACPI,UAAAA,CAAWN,gBAAAA,CAAAA,CACXO,KAAAA,CAAM,CAACC,GAAAA,KAAAA;AACN,QAAA,IAAIA,GAAAA,YAAeC,sBAAAA,IAA0BV,OAAAA,CAAQW,OAAAA,EAAS;AAC5D,UAAA,MAAM,EAAEC,gBAAAA,EAAkBP,QAAAA,EAAUQ,aAAAA,KAAkBJ,GAAAA,CAAIK,IAAAA;AAC1D,UAAA,IAAIF,gBAAAA,EAAkB;AACpB,YAAA,OAAO,IAAIG,eAAAA,CACT;AAAC,cAAA,IAAIC,iBAAiBJ,gBAAAA;eACtBC,aAAAA,EAAelC,KAAAA,EACfkC,eAAeI,YAAAA,CAAAA;AAEnB;AACF;AACA,QAAA,MAAMR,GAAAA;OACR,CAAA;AAEF,MAAA,IAAIJ,SAAS1B,KAAAA,EAAO;AAClBuC,QAAAA,eAAAA,CAAgB,IAAA,CAAK1D,KAAAA,CAAMmB,KAAAA,EAAO0B,QAAAA,CAAS1B,KAAK,CAAA;AAClD;AAEA,MAAA,OAAO0B,QAAAA;KACT,SAAA;AACEJ,MAAAA,gBAAAA,CAAiBkB,MAAAA,EAAM;AACzB;AACF;AAEA,EAAA,MAAgBf,kBAAkBJ,OAAAA,EAA2D;AAC3F,IAAA,MAAMoB,QAAAA,GAAsB;AAC1B,MAAA,MAAMC,mBAAAA,CAAoB,IAAA,CAAKjD,SAAAA,CAAUkD,MAAAA,EAAQtB,OAAAA,CAAAA;AAC9C,MAAA,GAAA,IAAA,CAAKxC,MAAMe,MAAAA,CAAO6C;;AAGvB,IAAA,OAAO;AACLA,MAAAA,QAAAA;AACAtD,MAAAA,KAAAA,EAAOkC,OAAAA,CAAQuB,YAAAA;AACfC,MAAAA,UAAAA,EAAYxB,OAAAA,CAAQwB,UAAAA;MACpBC,sBAAAA,EAAwB,IAAA;MACxBhC,UAAAA,EAAY,IAAA,CAAK5B,UAAUyB,iBAAAA,IAAqB;AAClD,KAAA;AACF;AAEA,EAAA,MAAgBoC,0BAA0BC,QAAAA,EAAoD;AAE5F,IAAA,MAAMC,MAAAA,GAASC,gBAAgBF,QAAAA,EAAU;MAAEG,IAAAA,EAAM;AAAC,QAAA,GAAA;AAAK,QAAA;;KAAK,CAAA;AAC5D,IAAA,IAAI,CAACF,MAAAA,EAAQ;AAEX,MAAA,IAAI,CAAC,IAAA,CAAKnE,QAAAA,CAASyB,WAAAA,CAAY6C,YAAAA,EAAc;AAC3C,QAAA,OAAO,IAAIf,gBAAAA,CAAiB;AAC1B,UAAA;YACEgB,IAAAA,EAAM,WAAA;AACNC,YAAAA,UAAAA,EAAY,QAAQC,EAAAA,EAAAA,CAASC,SAAAA,CAAU,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA;YAC1CC,QAAAA,EAAU,IAAA,CAAK3E,SAASyB,WAAAA,CAAYmD,IAAAA;AACpClC,YAAAA,KAAAA,EAAO,IAAA,CAAK1C,QAAAA,CAASyB,WAAAA,CAAYoD,WAAAA,GAAcC,KAAAA,CAAM;cAAElC,QAAAA,EAAUsB;aAAS;AAC5E;AACD,SAAA,CAAA;AACH;AACA,MAAA,OAAO,IAAA;AACT;AAEA,IAAA,OAAO,IAAIX,gBAAAA,CAAiB;AAC1B,MAAA;QACEgB,IAAAA,EAAM,WAAA;AACNC,QAAAA,UAAAA,EAAY,QAAQC,EAAAA,EAAAA,CAASC,SAAAA,CAAU,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA;QAC1CC,QAAAA,EAAU,IAAA,CAAK3E,SAASyB,WAAAA,CAAYmD,IAAAA;QACpClC,KAAAA,EAAOyB;AACT;AACD,KAAA,CAAA;AACH;EAEA,MAAgBY,aAAAA,CAAcC,UAAAA,GAAqB,EAAA,EAAsC;AACvF,IAAA,OAAO,MAAM,KAAKhF,QAAAA,CAAS+E,aAAAA,CAAc,KAAKhF,KAAAA,EAAO,IAAA,CAAKW,wBAAwBsE,UAAAA,CAAAA;AACpF;EAEA,MAAgBC,eAAAA,CACd5E,OACA6E,SAAAA,EACwB;AACxB,IAAA,MAAMC,cAA6B,EAAA;AAEnC,IAAA,MAAMC,OAAAA,GAAU,MAAMC,OAAAA,CAAQC,GAAAA,CAC5BJ,SAAAA,CAAUK,IAAI,CAACC,GAAAA,KAAQC,OAAAA,CAAQpF,KAAAA,EAAOmF,GAAAA,EAAK;AAAEzF,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA,CAAA,CAAA,CAAA;AAGjE,IAAA,KAAA,MAAW2F,YAAYN,OAAAA,EAAS;AAC9B,MAAA,IAAA,CAAKrF,KAAAA,CAAMiB,MAAM2E,IAAAA,CAAK;AACpBC,QAAAA,EAAAA,EAAInB,EAAAA,EAAAA;AACJxD,QAAAA,SAAAA,EAAW,KAAKlB,KAAAA,CAAMkB,SAAAA;AACtByB,QAAAA,KAAAA,EAAOgD,QAAAA,CAAShD,KAAAA;AAChBmD,QAAAA,MAAAA,EAAQH,QAAAA,CAASG,MAAAA;AACjBC,QAAAA,IAAAA,EAAMJ,QAAAA,CAASI,IAAAA;AACfC,QAAAA,KAAAA,EAAOL,QAAAA,CAASK;OAClB,CAAA;AAEA,MAAA,IAAIlF,MAAAA;AACJ,MAAA,IAAI6E,SAASK,KAAAA,EAAO;AAClBlF,QAAAA,MAAAA,GAAS,IAAA,CAAKF,SAAAA,CAAUqF,SAAAA,CAAUC,MAAAA,CAAO;UACvCC,MAAAA,EAAQR,QAAAA,CAASK,MAAMI,OAAAA;SACzB,CAAA;OACF,MAAO;AACLtF,QAAAA,MAAAA,GAAS,CAAC6E,QAAAA,CAASG,MAAAA,CAAOO,OAAAA,EAAO,GAC7BV,QAAAA,CAASG,MAAAA,CAAOQ,cAAAA,EAAc,GAC9B,IAAA,CAAK1F,SAAAA,CAAU2F,YAAAA,CAAaL,MAAAA,CAAO;UACjCP,QAAAA,EAAU;AAAEI,YAAAA,IAAAA,EAAMJ,QAAAA,CAASI,IAAAA;AAAMpD,YAAAA,KAAAA,EAAOgD,QAAAA,CAAShD;AAAM;SACzD,CAAA;AACN;AACAyC,MAAAA,WAAAA,CAAYQ,IAAAA,CACV,IAAIY,WAAAA,CAAY;QACdhC,IAAAA,EAAM,aAAA;AACNI,QAAAA,QAAAA,EAAUe,QAAAA,CAASI,IAAAA,EAAMlB,IAAAA,IAAQc,QAAAA,CAASF,GAAAA,CAAIb,QAAAA;AAC9CH,QAAAA,UAAAA,EAAYkB,SAASF,GAAAA,CAAIhB,UAAAA;QACzBqB,MAAAA,EAAQ;UAAEtB,IAAAA,EAAM,MAAA;UAAQiC,KAAAA,EAAO3F;AAAO;AACxC,OAAA,CAAA,CAAA;AAGF,MAAA,IAAI6E,SAASK,KAAAA,EAAO;AAClB,QAAA,IAAA,CAAK9F,qBAAAA,CAAsBwG,GAAAA,CAAIf,QAAAA,CAASK,KAAK,CAAA;AAC7C,QAAA,IAAA,CAAK7F,kBAAAA,CAAmBuG,GAAAA,CAAIf,QAAAA,CAASK,KAAK,CAAA;AAC5C;AACF;AAEA,IAAA,OAAOZ,WAAAA;AACT;AAEA,EAAA,MAAMuB,YAAY/C,QAAAA,EAAoC;AACpD,IAAA,MAAM,IAAA,CAAK5D,KAAAA,CAAMe,MAAAA,CAAO6F,OAAAA,CAAQhD,QAAAA,CAAAA;AAClC;AAEA,EAAA,MAAMiD,GAAAA,GAAyC;AAC7C,IAAA,IAAI,IAAA,CAAK7G,MAAMa,MAAAA,EAAQ;AACrB,MAAA,OAAO,IAAA,CAAKb,KAAAA;AACd;AAGA,IAAA,MAAM,IAAA,CAAKC,QAAAA,CAAS6G,MAAAA,CAAO,IAAA,CAAKvG,YAAY,CAAA;AAE5C,IAAA,OAAO,CAAC,IAAA,CAAKP,KAAAA,CAAMa,MAAAA,EAAQ;AACzB,MAAA,IAAA,CAAKwB,kBAAAA,EAAkB;AAEvB,MAAA,MAAMG,OAAAA,GAAU,MAAM,IAAA,CAAKwC,aAAAA,EAAa;AACxC,MAAA,MAAM,IAAA,CAAKtE,GAAAA,CAAIqG,OAAAA,CAAQC,IAAAA,CAAK,OAAA,EAAS;AAAEhH,QAAAA,KAAAA,EAAO,IAAA,CAAKA,KAAAA;AAAOwC,QAAAA;OAAQ,CAAA;AAClE,MAAA,MAAMK,QAAAA,GAAW,MAAM,IAAA,CAAKoE,YAAAA,CAAazE,OAAAA,CAAAA;AACzC,MAAA,MAAM,IAAA,CAAK9B,GAAAA,CAAIqG,OAAAA,CAAQC,IAAAA,CAAK,SAAA,EAAW;AAAEhH,QAAAA,KAAAA,EAAO,IAAA,CAAKA,KAAAA;AAAO6C,QAAAA;OAAS,CAAA;AACvE;AAEA,IAAA,OAAO,IAAA,CAAK7C,KAAAA;AACd;AAEA,EAAA,MAAgBiH,aAAazE,OAAAA,EAA4D;AACvF,IAAA,MAAMK,QAAAA,GAAW,MAAM,IAAA,CAAKN,MAAAA,CAAOC,OAAAA,CAAAA;AAGnC,IAAA,IAAIK,QAAAA,CAASqE,YAAAA,EAAY,CAAGC,MAAAA,KAAW,CAAA,EAAG;AACxC,MAAA,MAAMC,YAAAA,GAAevE,SAASwE,eAAAA,EAAe;AAC7C,MAAA,MAAMC,IAAAA,GAAOF,aAAa5B,GAAAA,CAAI,CAAC+B,MAAMA,CAAAA,CAAED,IAAI,CAAA,CAAEE,IAAAA,CAAK,IAAA,CAAA;AAElD,MAAA,MAAMC,mBAAAA,GACJH,QAAQ9E,OAAAA,CAAQW,OAAAA,GAAU,MAAM,IAAA,CAAKe,yBAAAA,CAA0BoD,IAAAA,CAAAA,GAAQ,IAAA;AACzE,MAAA,IAAIG,mBAAAA,EAAqB;AACvB,QAAA,MAAMC,MAAAA,GAAS,IAAA,CAAKhF,uBAAAA,CAAwBF,OAAAA,CAAQd,WAAW,CAAA;AAC/D,QAAA,MAAMgG,MAAAA,CAAOC,GAAAA,CAAI,IAAIpE,eAAAA,CAAgB;AAACkE,UAAAA;SAAoB,CAAA,CAAA;OAC5D,MAAO;AACL,QAAA,MAAMxE,GAAAA,GAAM,IAAIjB,UAAAA,CAAW,mDAAA,CAAA;AAC3B,QAAA,IAAA,CAAK9B,qBAAAA,CAAsBwG,IAAIzD,GAAAA,CAAAA;AAC/B,QAAA,IAAA,CAAK9C,kBAAAA,CAAmBuG,IAAIzD,GAAAA,CAAAA;AAE5B,QAAA,IAAI,CAACT,QAAQW,OAAAA,EAAS;AACpB,UAAA,OAAO,MAAM,IAAA,CAAK8D,YAAAA,CAAazE,OAAAA,CAAAA;AACjC;AAEA,QAAA,MAAM,IAAA,CAAKvC,QAAAA,CAAS6G,MAAAA,CAAO,EAAE,CAAA;AAC7B,QAAA,MAAMc,cAAAA,GAAiB,MAAM,IAAA,CAAK5C,aAAAA,CAAc;AAC9C,UAAA;YACE6C,MAAAA,EAAQ,IAAA,CAAK5H,SAASyB,WAAAA,CAAYmD,IAAAA;YAClCiD,OAAAA,EAAS,IAAA;YACTC,MAAAA,EAAQ,KAAA;YACRC,MAAAA,EAAQ,KAAA;YACRC,WAAAA,EAAa;AACf;AACD,SAAA,CAAA;AACD,QAAA,IAAA,CAAKtH,sBAAAA,GAAyB,IAAA;AAC9B,QAAA,OAAO,MAAM,IAAA,CAAKsG,YAAAA,CAAaW,cAAAA,CAAAA;AACjC;AAEA/E,MAAAA,QAAAA,CAASe,SAASuD,MAAAA,GAAS,CAAA;AAC3BtE,MAAAA,QAAAA,CAASe,QAAAA,CAASgC,KAAK6B,mBAAAA,CAAAA;AACzB;AAGA,IAAA,MAAMtC,SAAAA,GAAYtC,SAASqE,YAAAA,EAAY;AACvC,IAAA,KAAA,MAAWgB,eAAe/C,SAAAA,EAAW;AACnC,MAAA,IAAA,CAAK1E,oBAAAA,CAAqB0H,SAASD,WAAAA,CAAAA;AACnC,MAAA,IAAI,IAAA,CAAKzH,qBAAqB2H,UAAAA,EAAY;AACxC,QAAA,IAAA,CAAK3H,qBAAqB4H,KAAAA,EAAK;AAC/B,QAAA,MAAMT,cAAAA,GAAiB,MAAM,IAAA,CAAK5C,aAAAA,CAAc;AAC9C,UAAA;AACE6C,YAAAA,MAAAA,EAAQK,WAAAA,CAAYtD,QAAAA;YACpBkD,OAAAA,EAAS,KAAA;YACTC,MAAAA,EAAQ,KAAA;YACRC,MAAAA,EAAQ,IAAA;YACRC,WAAAA,EAAa;AACf;AACD,SAAA,CAAA;AACD,QAAA,OAAO,MAAM,IAAA,CAAKhB,YAAAA,CAAaW,cAAAA,CAAAA;AACjC;AACF;AAEA,IAAA,MAAMxC,cAAc,MAAM,IAAA,CAAKF,eAAAA,CAAgB1C,OAAAA,CAAQuB,cAAcoB,SAAAA,CAAAA;AACrE,IAAA,MAAM,IAAA,CAAKnF,KAAAA,CAAMe,MAAAA,CAAO6F,OAAAA,CAAQ;SAAI/D,QAAAA,CAASe,QAAAA;AAAawB,MAAAA,GAAAA;AAAY,KAAA,CAAA;AAGtE,IAAA,MAAMkD,YAAAA,GAAe,IAAA,CAAKtI,KAAAA,CAAMe,MAAAA,CAAO6C,QAAAA,CAAS2E,MAAAA,CAAO,CAAC9C,GAAAA,KAAQA,GAAAA,CAAI+C,IAAAA,CAAK1I,gBAAAA,CAAiB,CAAA;AAC1F,IAAA,MAAM,IAAA,CAAKE,KAAAA,CAAMe,MAAAA,CAAO0H,UAAAA,CAAWH,YAAAA,CAAAA;AAEnC,IAAA,OAAOzF,QAAAA;AACT;AAEQH,EAAAA,uBAAAA,CAAwBhB,WAAAA,EAA8B;AAC5D,IAAA,MAAMqB,UAAAA,GAAa,IAAI2F,wBAAAA,CAAyB;MAC9Cb,MAAAA,EAAQnG,WAAAA;MACRiH,cAAAA,EAAgB,KAAA;MAChBC,GAAAA,EAAK,UAAA;MACLC,WAAAA,EAAa;KACf,CAAA;AACA9F,IAAAA,UAAAA,CAAWgE,OAAAA,CAAQ+B,EAAAA,CAAG,QAAA,EAAU,OAAOxF,MAAMyF,CAAAA,KAAAA;AAC3C,MAAA,MAAM,IAAA,CAAKrI,GAAAA,CAAIqG,OAAAA,CAAQC,IAAAA,CAAK,aAAA,EAAe;AACzChH,QAAAA,KAAAA,EAAO,IAAA,CAAKA,KAAAA;AACZ8F,QAAAA,MAAAA,EAAQxC,IAAAA,CAAKwC,MAAAA;AACbkD,QAAAA,KAAAA,EAAO1F,IAAAA,CAAK0F,KAAAA;QACZC,gBAAAA,EAAkBxH;OACpB,CAAA;KACF,CAAA;AACA,IAAA,OAAOsB,UAAAA;AACT;AACF","file":"runner.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AgentError } from \"@/agents/base.js\";\nimport { ChatModel, ChatModelInput, ChatModelOutput } from \"@/backend/chat.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { ToolCallPart } from \"ai\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { RunContext } from \"@/context.js\";\nimport {\n RequirementAgentExecutionConfig,\n RequirementAgentRequest,\n RequirementAgentRunState,\n RequirementAgentTemplates,\n} from \"./types.js\";\nimport { Requirement, Rule } from \"./requirements/requirement.js\";\nimport { RequirementsReasoner, createSystemMessage } from \"./utils/llm.js\";\nimport { FinalAnswerTool, runTool } from \"./utils/tool.js\";\nimport { ToolCallChecker } from \"./utils/toolCallChecker.js\";\nimport { z } from \"zod\";\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { RequirementAgent } from \"@/agents/requirement/agent.js\";\nimport { mergeTokenUsage } from \"@/adapters/vercel/backend/utils.js\";\nimport { StreamToolCallMiddleware } from \"@/middleware/streamToolCall.js\";\nimport { ChatModelToolCallError } from \"@/backend/errors.js\";\n\nconst TEMP_MESSAGE_KEY = \"tempMessage\";\n\n/**\n * Runner for RequirementAgent execution\n */\nexport class RequirementAgentRunner {\n protected readonly state: RequirementAgentRunState;\n protected readonly reasoner: RequirementsReasoner;\n protected readonly iterationErrorCounter: RetryCounter;\n protected readonly globalErrorCounter: RetryCounter;\n\n constructor(\n protected readonly llm: ChatModel,\n protected readonly runConfig: RequirementAgentExecutionConfig,\n tools: AnyTool[],\n protected readonly requirements: Requirement[],\n expectedOutput: string | z.ZodSchema | null,\n protected readonly toolCallCycleChecker: ToolCallChecker,\n protected readonly ctx: RunContext<RequirementAgent>,\n protected forceFinalAnswerAsTool: boolean,\n protected readonly templates: RequirementAgentTemplates,\n ) {\n this.state = {\n answer: null,\n result: null,\n memory: new UnconstrainedMemory(),\n steps: [],\n iteration: 0,\n usage: {\n totalTokens: 0,\n promptTokens: 0,\n completionTokens: 0,\n reasoningTokens: 0,\n cachedPromptTokens: undefined,\n },\n };\n\n this.requirements = requirements;\n const finalAnswer = new FinalAnswerTool(expectedOutput, this.state);\n this.reasoner = new RequirementsReasoner(tools, finalAnswer, ctx);\n\n const maxRetriesPerIteration = runConfig.maxRetriesPerStep ?? 0;\n this.iterationErrorCounter = new RetryCounter(maxRetriesPerIteration, AgentError);\n\n const maxRetries = Math.max(maxRetriesPerIteration, runConfig.totalMaxRetries ?? 0);\n this.globalErrorCounter = new RetryCounter(maxRetries, AgentError);\n }\n\n protected incrementIteration(): void {\n this.state.iteration++;\n\n if (this.runConfig.maxIterations && this.state.iteration > this.runConfig.maxIterations) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${this.state.iteration} iterations.`,\n );\n }\n }\n\n protected async runLLM(request: RequirementAgentRequest): Promise<ChatModelOutput> {\n const streamMiddleware = this.createFinalAnswerStream(request.finalAnswer);\n try {\n const input = await this.prepareLLMRequest(request);\n const response = await this.llm\n .create(input)\n .middleware(streamMiddleware)\n .catch((err) => {\n if (err instanceof ChatModelToolCallError && request.canStop) {\n const { generatedContent, response: errorResponse } = err.data;\n if (generatedContent) {\n return new ChatModelOutput(\n [new AssistantMessage(generatedContent)],\n errorResponse?.usage,\n errorResponse?.finishReason,\n );\n }\n }\n throw err;\n });\n\n if (response.usage) {\n mergeTokenUsage(this.state.usage, response.usage);\n }\n\n return response;\n } finally {\n streamMiddleware.unbind();\n }\n }\n\n protected async prepareLLMRequest(request: RequirementAgentRequest): Promise<ChatModelInput> {\n const messages: Message[] = [\n await createSystemMessage(this.templates.system, request),\n ...this.state.memory.messages,\n ];\n\n return {\n messages,\n tools: request.allowedTools,\n toolChoice: request.toolChoice,\n streamPartialToolCalls: true,\n maxRetries: this.runConfig.maxRetriesPerStep ?? 0,\n };\n }\n\n protected async createFinalAnswerToolCall(fullText: string): Promise<AssistantMessage | null> {\n // Try to extract JSON from text\n const parsed = parseBrokenJson(fullText, { pair: [\"{\", \"}\"] });\n if (!parsed) {\n // If no JSON and no custom schema, wrap in default schema\n if (!this.reasoner.finalAnswer.customSchema) {\n return new AssistantMessage([\n {\n type: \"tool-call\",\n toolCallId: `call_${uuidv4().substring(0, 8)}`,\n toolName: this.reasoner.finalAnswer.name,\n input: this.reasoner.finalAnswer.inputSchema().parse({ response: fullText }),\n },\n ]);\n }\n return null;\n }\n\n return new AssistantMessage([\n {\n type: \"tool-call\",\n toolCallId: `call_${uuidv4().substring(0, 8)}`,\n toolName: this.reasoner.finalAnswer.name,\n input: parsed,\n },\n ]);\n }\n\n protected async createRequest(extraRules: Rule[] = []): Promise<RequirementAgentRequest> {\n return await this.reasoner.createRequest(this.state, this.forceFinalAnswerAsTool, extraRules);\n }\n\n protected async invokeToolCalls(\n tools: AnyTool[],\n toolCalls: ToolCallPart[],\n ): Promise<ToolMessage[]> {\n const toolResults: ToolMessage[] = [];\n\n const results = await Promise.all(\n toolCalls.map((msg) => runTool(tools, msg, { state: this.state })),\n );\n\n for (const toolCall of results) {\n this.state.steps.push({\n id: uuidv4(),\n iteration: this.state.iteration,\n input: toolCall.input,\n output: toolCall.output,\n tool: toolCall.tool,\n error: toolCall.error,\n });\n\n let result: string;\n if (toolCall.error) {\n result = this.templates.toolError.render({\n reason: toolCall.error.explain(),\n });\n } else {\n result = !toolCall.output.isEmpty()\n ? toolCall.output.getTextContent()\n : this.templates.toolNoResult.render({\n toolCall: { tool: toolCall.tool, input: toolCall.input },\n });\n }\n toolResults.push(\n new ToolMessage({\n type: \"tool-result\",\n toolName: toolCall.tool?.name || toolCall.msg.toolName,\n toolCallId: toolCall.msg.toolCallId,\n output: { type: \"text\", value: result },\n }),\n );\n\n if (toolCall.error) {\n this.iterationErrorCounter.use(toolCall.error);\n this.globalErrorCounter.use(toolCall.error);\n }\n }\n\n return toolResults;\n }\n\n async addMessages(messages: Message[]): Promise<void> {\n await this.state.memory.addMany(messages);\n }\n\n async run(): Promise<RequirementAgentRunState> {\n if (this.state.answer) {\n return this.state;\n }\n\n // Initialize requirements\n await this.reasoner.update(this.requirements);\n\n while (!this.state.answer) {\n this.incrementIteration();\n\n const request = await this.createRequest();\n await this.ctx.emitter.emit(\"start\", { state: this.state, request });\n const response = await this.runIteration(request);\n await this.ctx.emitter.emit(\"success\", { state: this.state, response });\n }\n\n return this.state;\n }\n\n protected async runIteration(request: RequirementAgentRequest): Promise<ChatModelOutput> {\n const response = await this.runLLM(request);\n\n // Try to cast text message to final answer tool call if allowed\n if (response.getToolCalls().length === 0) {\n const textMessages = response.getTextMessages();\n const text = textMessages.map((m) => m.text).join(\"\\n\");\n\n const finalAnswerToolCall =\n text && request.canStop ? await this.createFinalAnswerToolCall(text) : null;\n if (finalAnswerToolCall) {\n const stream = this.createFinalAnswerStream(request.finalAnswer);\n await stream.add(new ChatModelOutput([finalAnswerToolCall]));\n } else {\n const err = new AgentError(\"Model produced an invalid final answer tool call.\");\n this.iterationErrorCounter.use(err);\n this.globalErrorCounter.use(err);\n\n if (!request.canStop) {\n return await this.runIteration(request);\n }\n\n await this.reasoner.update([]);\n const updatedRequest = await this.createRequest([\n {\n target: this.reasoner.finalAnswer.name,\n allowed: true,\n hidden: false,\n forced: false,\n preventStop: false,\n },\n ]);\n this.forceFinalAnswerAsTool = true;\n return await this.runIteration(updatedRequest);\n }\n\n response.messages.length = 0;\n response.messages.push(finalAnswerToolCall);\n }\n\n // Check for cycles\n const toolCalls = response.getToolCalls();\n for (const toolCallMsg of toolCalls) {\n this.toolCallCycleChecker.register(toolCallMsg);\n if (this.toolCallCycleChecker.cycleFound) {\n this.toolCallCycleChecker.reset();\n const updatedRequest = await this.createRequest([\n {\n target: toolCallMsg.toolName,\n allowed: false,\n hidden: false,\n forced: true,\n preventStop: false,\n },\n ]);\n return await this.runIteration(updatedRequest);\n }\n }\n\n const toolResults = await this.invokeToolCalls(request.allowedTools, toolCalls);\n await this.state.memory.addMany([...response.messages, ...toolResults]);\n\n // Delete temporary messages\n const tempMessages = this.state.memory.messages.filter((msg) => msg.meta[TEMP_MESSAGE_KEY]);\n await this.state.memory.deleteMany(tempMessages);\n\n return response;\n }\n\n private createFinalAnswerStream(finalAnswer: FinalAnswerTool) {\n const middleware = new StreamToolCallMiddleware({\n target: finalAnswer,\n forceStreaming: false,\n key: \"response\",\n matchNested: false,\n });\n middleware.emitter.on(\"update\", async (data, _) => {\n await this.ctx.emitter.emit(\"finalAnswer\", {\n state: this.state,\n output: data.output,\n delta: data.delta,\n outputStructured: undefined,\n });\n });\n return middleware;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/agents/requirement/runner.ts"],"names":["TEMP_MESSAGE_KEY","RequirementAgentRunner","state","reasoner","iterationErrorCounter","globalErrorCounter","llm","runConfig","tools","requirements","expectedOutput","toolCallCycleChecker","ctx","forceFinalAnswerAsTool","templates","answer","result","memory","UnconstrainedMemory","steps","iteration","usage","totalTokens","promptTokens","completionTokens","reasoningTokens","cachedPromptTokens","undefined","finalAnswer","FinalAnswerTool","RequirementsReasoner","maxRetriesPerIteration","maxRetriesPerStep","RetryCounter","AgentError","maxRetries","Math","max","totalMaxRetries","incrementIteration","maxIterations","runLLM","request","streamMiddleware","createFinalAnswerStream","input","prepareLLMRequest","response","create","middleware","catch","err","ChatModelToolCallError","canStop","generatedContent","errorResponse","data","ChatModelOutput","AssistantMessage","finishReason","mergeTokenUsage","unbind","messages","createSystemMessage","system","allowedTools","toolChoice","streamPartialToolCalls","createFinalAnswerToolCall","fullText","parsed","parseBrokenJson","pair","customSchema","type","toolCallId","uuidv4","substring","toolName","name","inputSchema","parse","createRequest","extraRules","invokeToolCalls","toolCalls","toolResults","results","Promise","all","map","msg","runTool","toolCall","push","id","output","tool","error","toolError","render","reason","explain","isEmpty","getTextContent","toolNoResult","ToolMessage","value","use","addMessages","addMany","run","update","emitter","emit","runIteration","getToolCalls","length","textMessages","getTextMessages","text","m","join","finalAnswerToolCall","stream","add","updatedRequest","target","allowed","hidden","forced","preventStop","toolCallMsg","register","cycleFound","reset","tempMessages","filter","meta","deleteMany","StreamToolCallMiddleware","forceStreaming","key","matchNested","on","_","delta","outputStructured"],"mappings":"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","file":"runner.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AgentError } from \"@/agents/base.js\";\nimport { ChatModel, ChatModelInput, ChatModelOutput } from \"@/backend/chat.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { ToolCallPart } from \"ai\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { RunContext } from \"@/context.js\";\nimport {\n RequirementAgentExecutionConfig,\n RequirementAgentRequest,\n RequirementAgentRunState,\n RequirementAgentTemplates,\n} from \"./types.js\";\nimport { Requirement, Rule } from \"./requirements/requirement.js\";\nimport { RequirementsReasoner, createSystemMessage } from \"./utils/llm.js\";\nimport { FinalAnswerTool, runTool } from \"./utils/tool.js\";\nimport { ToolCallChecker } from \"./utils/toolCallChecker.js\";\nimport { z } from \"zod\";\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { RequirementAgent } from \"@/agents/requirement/agent.js\";\nimport { mergeTokenUsage } from \"@/adapters/vercel/backend/utils.js\";\nimport { StreamToolCallMiddleware } from \"@/middleware/streamToolCall.js\";\nimport { ChatModelToolCallError } from \"@/backend/errors.js\";\n\nconst TEMP_MESSAGE_KEY = \"tempMessage\";\n\n/**\n * Runner for RequirementAgent execution\n */\nexport class RequirementAgentRunner {\n protected readonly state: RequirementAgentRunState;\n protected readonly reasoner: RequirementsReasoner;\n protected readonly iterationErrorCounter: RetryCounter;\n protected readonly globalErrorCounter: RetryCounter;\n\n constructor(\n protected readonly llm: ChatModel,\n protected readonly runConfig: RequirementAgentExecutionConfig,\n tools: AnyTool[],\n protected readonly requirements: Requirement[],\n expectedOutput: string | z.ZodSchema | null,\n protected readonly toolCallCycleChecker: ToolCallChecker,\n protected readonly ctx: RunContext<RequirementAgent>,\n protected forceFinalAnswerAsTool: boolean,\n protected readonly templates: RequirementAgentTemplates,\n ) {\n this.state = {\n answer: null,\n result: null,\n memory: new UnconstrainedMemory(),\n steps: [],\n iteration: 0,\n usage: {\n totalTokens: 0,\n promptTokens: 0,\n completionTokens: 0,\n reasoningTokens: 0,\n cachedPromptTokens: undefined,\n },\n };\n\n this.requirements = requirements;\n const finalAnswer = new FinalAnswerTool(expectedOutput, this.state);\n this.reasoner = new RequirementsReasoner(tools, finalAnswer, ctx);\n\n const maxRetriesPerIteration = runConfig.maxRetriesPerStep ?? 0;\n this.iterationErrorCounter = new RetryCounter(maxRetriesPerIteration, AgentError);\n\n const maxRetries = Math.max(maxRetriesPerIteration, runConfig.totalMaxRetries ?? 0);\n this.globalErrorCounter = new RetryCounter(maxRetries, AgentError);\n }\n\n protected incrementIteration(): void {\n this.state.iteration++;\n\n if (this.runConfig.maxIterations && this.state.iteration > this.runConfig.maxIterations) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${this.state.iteration} iterations.`,\n );\n }\n }\n\n protected async runLLM(request: RequirementAgentRequest): Promise<ChatModelOutput> {\n const streamMiddleware = this.createFinalAnswerStream(request.finalAnswer);\n try {\n const input = await this.prepareLLMRequest(request);\n const response = await this.llm\n .create(input)\n .middleware(streamMiddleware)\n .catch((err) => {\n if (err instanceof ChatModelToolCallError && request.canStop) {\n const { generatedContent, response: errorResponse } = err.data;\n if (generatedContent) {\n return new ChatModelOutput(\n [new AssistantMessage(generatedContent)],\n errorResponse?.usage,\n errorResponse?.finishReason,\n );\n }\n }\n throw err;\n });\n\n if (response.usage) {\n mergeTokenUsage(this.state.usage, response.usage);\n }\n\n return response;\n } finally {\n streamMiddleware.unbind();\n }\n }\n\n protected async prepareLLMRequest(request: RequirementAgentRequest): Promise<ChatModelInput> {\n const messages: Message[] = [\n await createSystemMessage(this.templates.system, request),\n ...this.state.memory.messages,\n ];\n\n return {\n messages,\n tools: request.allowedTools,\n toolChoice: request.toolChoice,\n streamPartialToolCalls: true,\n maxRetries: this.runConfig.maxRetriesPerStep ?? 0,\n };\n }\n\n protected async createFinalAnswerToolCall(fullText: string): Promise<AssistantMessage | null> {\n // Try to extract JSON from text\n const parsed = parseBrokenJson(fullText, { pair: [\"{\", \"}\"] });\n if (!parsed) {\n // If no JSON and no custom schema, wrap in default schema\n if (!this.reasoner.finalAnswer.customSchema) {\n return new AssistantMessage([\n {\n type: \"tool-call\",\n toolCallId: `call_${uuidv4().substring(0, 8)}`,\n toolName: this.reasoner.finalAnswer.name,\n input: this.reasoner.finalAnswer.inputSchema().parse({ response: fullText }),\n },\n ]);\n }\n return null;\n }\n\n return new AssistantMessage([\n {\n type: \"tool-call\",\n toolCallId: `call_${uuidv4().substring(0, 8)}`,\n toolName: this.reasoner.finalAnswer.name,\n input: parsed,\n },\n ]);\n }\n\n protected async createRequest(extraRules: Rule[] = []): Promise<RequirementAgentRequest> {\n return await this.reasoner.createRequest(this.state, this.forceFinalAnswerAsTool, extraRules);\n }\n\n protected async invokeToolCalls(\n tools: AnyTool[],\n toolCalls: ToolCallPart[],\n ): Promise<ToolMessage[]> {\n const toolResults: ToolMessage[] = [];\n\n const results = await Promise.all(\n toolCalls.map((msg) => runTool(tools, msg, { state: this.state })),\n );\n\n for (const toolCall of results) {\n this.state.steps.push({\n id: uuidv4(),\n iteration: this.state.iteration,\n input: toolCall.input,\n output: toolCall.output,\n tool: toolCall.tool,\n error: toolCall.error,\n });\n\n let result: string;\n if (toolCall.error) {\n result = this.templates.toolError.render({\n reason: toolCall.error.explain(),\n });\n } else {\n result = !toolCall.output.isEmpty()\n ? toolCall.output.getTextContent()\n : this.templates.toolNoResult.render({\n toolCall: { tool: toolCall.tool, input: toolCall.input },\n });\n }\n toolResults.push(\n new ToolMessage({\n type: \"tool-result\",\n toolName: toolCall.tool?.name || toolCall.msg.toolName,\n toolCallId: toolCall.msg.toolCallId,\n output: { type: \"text\", value: result },\n }),\n );\n\n if (toolCall.error) {\n this.iterationErrorCounter.use(toolCall.error);\n this.globalErrorCounter.use(toolCall.error);\n }\n }\n\n return toolResults;\n }\n\n async addMessages(messages: Message[]): Promise<void> {\n await this.state.memory.addMany(messages);\n }\n\n async run(): Promise<RequirementAgentRunState> {\n if (this.state.answer) {\n return this.state;\n }\n\n // Initialize requirements\n await this.reasoner.update(this.requirements);\n\n while (!this.state.answer) {\n this.incrementIteration();\n\n const request = await this.createRequest();\n await this.ctx.emitter.emit(\"start\", { state: this.state, request });\n const response = await this.runIteration(request);\n await this.ctx.emitter.emit(\"success\", { state: this.state, response });\n }\n\n return this.state;\n }\n\n protected async runIteration(request: RequirementAgentRequest): Promise<ChatModelOutput> {\n const response = await this.runLLM(request);\n\n // Try to cast text message to final answer tool call if allowed\n if (response.getToolCalls().length === 0) {\n const textMessages = response.getTextMessages();\n const text = textMessages.map((m) => m.text).join(\"\\n\");\n\n const finalAnswerToolCall =\n text && request.canStop ? await this.createFinalAnswerToolCall(text) : null;\n if (finalAnswerToolCall) {\n const stream = this.createFinalAnswerStream(request.finalAnswer);\n await stream.add(new ChatModelOutput([finalAnswerToolCall]));\n } else {\n const err = new AgentError(\"Model produced an invalid final answer tool call.\");\n this.iterationErrorCounter.use(err);\n this.globalErrorCounter.use(err);\n\n if (!request.canStop) {\n return await this.runIteration(request);\n }\n\n await this.reasoner.update([]);\n const updatedRequest = await this.createRequest([\n {\n target: this.reasoner.finalAnswer.name,\n allowed: true,\n hidden: false,\n forced: false,\n preventStop: false,\n },\n ]);\n this.forceFinalAnswerAsTool = true;\n return await this.runIteration(updatedRequest);\n }\n\n response.messages.length = 0;\n response.messages.push(finalAnswerToolCall);\n }\n\n // Check for cycles\n const toolCalls = response.getToolCalls();\n for (const toolCallMsg of toolCalls) {\n this.toolCallCycleChecker.register(toolCallMsg);\n if (this.toolCallCycleChecker.cycleFound) {\n this.toolCallCycleChecker.reset();\n const updatedRequest = await this.createRequest([\n {\n target: toolCallMsg.toolName,\n allowed: false,\n hidden: false,\n forced: true,\n preventStop: false,\n },\n ]);\n return await this.runIteration(updatedRequest);\n }\n }\n\n const toolResults = await this.invokeToolCalls(request.allowedTools, toolCalls);\n await this.state.memory.addMany([...response.messages, ...toolResults]);\n\n // Delete temporary messages\n const tempMessages = this.state.memory.messages.filter((msg) => msg.meta[TEMP_MESSAGE_KEY]);\n await this.state.memory.deleteMany(tempMessages);\n\n return response;\n }\n\n private createFinalAnswerStream(finalAnswer: FinalAnswerTool) {\n const middleware = new StreamToolCallMiddleware({\n target: finalAnswer,\n forceStreaming: false,\n key: \"response\",\n matchNested: false,\n });\n middleware.emitter.on(\"update\", async (data, _) => {\n await this.ctx.emitter.emit(\"finalAnswer\", {\n state: this.state,\n output: data.output,\n delta: data.delta,\n outputStructured: undefined,\n });\n });\n return middleware;\n }\n}\n"]}
|
|
@@ -3,17 +3,17 @@ import '../../backend/message.cjs';
|
|
|
3
3
|
import '../../tools/base.cjs';
|
|
4
4
|
import '../../errors.cjs';
|
|
5
5
|
import '../../template.cjs';
|
|
6
|
-
import '../../chat-
|
|
7
|
-
import '../../base-
|
|
6
|
+
import '../../chat-C20nYj46.cjs';
|
|
7
|
+
import '../../base-s3ioVIE9.cjs';
|
|
8
8
|
import 'zod';
|
|
9
|
-
export { h as RequirementAgentCallbacks, c as RequirementAgentExecutionConfig, f as RequirementAgentOutput, a as RequirementAgentRequest, e as RequirementAgentRunInput, g as RequirementAgentRunOptions, R as RequirementAgentRunState,
|
|
9
|
+
export { h as RequirementAgentCallbacks, c as RequirementAgentExecutionConfig, f as RequirementAgentOutput, a as RequirementAgentRequest, e as RequirementAgentRunInput, g as RequirementAgentRunOptions, R as RequirementAgentRunState, i as RequirementAgentRunStateStep, b as RequirementAgentSystemPromptInputSchema, j as RequirementAgentTaskPromptInputSchema, d as RequirementAgentTemplates, k as RequirementAgentToolErrorPromptInputSchema, l as RequirementAgentToolNoResultPromptInputSchema } from '../../types-BNsa3W7Z.cjs';
|
|
10
10
|
import '../../internals/serializable.cjs';
|
|
11
11
|
import '../../internals/types.cjs';
|
|
12
12
|
import '../../internals/helpers/guards.cjs';
|
|
13
13
|
import 'ai';
|
|
14
14
|
import 'ajv';
|
|
15
15
|
import '../../context.cjs';
|
|
16
|
-
import '../../emitter-
|
|
16
|
+
import '../../emitter-D4OcelZ9.cjs';
|
|
17
17
|
import '../../internals/helpers/promise.cjs';
|
|
18
18
|
import 'promise-based-task';
|
|
19
19
|
import '../../cache/base.cjs';
|
|
@@ -3,17 +3,17 @@ import '../../backend/message.js';
|
|
|
3
3
|
import '../../tools/base.js';
|
|
4
4
|
import '../../errors.js';
|
|
5
5
|
import '../../template.js';
|
|
6
|
-
import '../../chat-
|
|
7
|
-
import '../../base-
|
|
6
|
+
import '../../chat-CfTNfR60.js';
|
|
7
|
+
import '../../base-BjzyQ8k6.js';
|
|
8
8
|
import 'zod';
|
|
9
|
-
export { h as RequirementAgentCallbacks, c as RequirementAgentExecutionConfig, f as RequirementAgentOutput, a as RequirementAgentRequest, e as RequirementAgentRunInput, g as RequirementAgentRunOptions, R as RequirementAgentRunState,
|
|
9
|
+
export { h as RequirementAgentCallbacks, c as RequirementAgentExecutionConfig, f as RequirementAgentOutput, a as RequirementAgentRequest, e as RequirementAgentRunInput, g as RequirementAgentRunOptions, R as RequirementAgentRunState, i as RequirementAgentRunStateStep, b as RequirementAgentSystemPromptInputSchema, j as RequirementAgentTaskPromptInputSchema, d as RequirementAgentTemplates, k as RequirementAgentToolErrorPromptInputSchema, l as RequirementAgentToolNoResultPromptInputSchema } from '../../types-DYtzF6ya.js';
|
|
10
10
|
import '../../internals/serializable.js';
|
|
11
11
|
import '../../internals/types.js';
|
|
12
12
|
import '../../internals/helpers/guards.js';
|
|
13
13
|
import 'ai';
|
|
14
14
|
import 'ajv';
|
|
15
15
|
import '../../context.js';
|
|
16
|
-
import '../../emitter-
|
|
16
|
+
import '../../emitter-kHxkUxco.js';
|
|
17
17
|
import '../../internals/helpers/promise.js';
|
|
18
18
|
import 'promise-based-task';
|
|
19
19
|
import '../../cache/base.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/utils/llm.ts"],"names":["RequirementsReasoner","tools","entries","context","finalAnswer","update","requirements","requirement","push","entry","emitter","child","groupId","toCamelCase","name","creator","namespace","emit","init","findToolByName","tool","find","t","Error","map","join","createRequest","state","forceTool","extraRules","hidden","allowed","allTools","reasonByTool","WeakMap","preventStop","preventStepRefs","forced","forcedLevel","rulesByTool","Map","set","filter","e","enabled","generatedRules","run","rule","target","rules","get","priority","has","length","Math","max","r","toolName","sort","a","b","maxPriority","isAllowed","isForced","isHidden","isPreventStop","ruleEntry","reason","includes","finalAnswerIndex","indexOf","splice","AgentError","JSON","stringify","toolChoice","Tool","allowedTools","hiddenTools","canStop","createSystemMessage","template","request","SystemMessage","render","Promise","all","description","inputSchema","String","finalAnswerName","finalAnswerSchema","customSchema","undefined","finalAnswerInstructions","instructions","role","notes"],"mappings":"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","file":"llm.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, Tool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { AgentError } from \"@/agents/base.js\";\nimport { SystemMessage } from \"@/backend/message.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentRequest,\n RequirementAgentRunState,\n RequirementAgentSystemPromptInputSchema,\n} from \"@/agents/requirement/types.js\";\nimport {\n Requirement,\n RequirementCallbacks,\n Rule,\n} from \"@/agents/requirement/requirements/requirement.js\";\nimport { FinalAnswerTool } from \"./tool.js\";\nimport { ChatModelToolChoice } from \"@/backend/chat.js\";\nimport { toCamelCase } from \"remeda\";\n\ninterface RuleEntry {\n rule: Rule;\n requirement: Requirement | null;\n priority: number;\n}\n\n/**\n * Manages requirements and generates requests for the agent\n */\nexport class RequirementsReasoner {\n protected tools: AnyTool[];\n protected entries: Requirement[] = [];\n protected context: RunContext<any>;\n public readonly finalAnswer: FinalAnswerTool;\n\n constructor(tools: AnyTool[], finalAnswer: FinalAnswerTool, context: RunContext<any>) {\n this.tools = [...tools, finalAnswer];\n this.finalAnswer = finalAnswer;\n this.context = context;\n }\n\n async update(requirements: Requirement[]): Promise<void> {\n this.entries = [];\n\n for (const requirement of requirements) {\n this.entries.push(requirement);\n }\n\n for (const entry of this.entries) {\n const emitter = this.context.emitter.child<RequirementCallbacks>({\n groupId: toCamelCase(entry.name),\n creator: entry,\n });\n emitter.namespace.push(\"requirement\");\n\n const tools = [...this.tools];\n await emitter.emit(\"init\", { tools });\n await entry.init(tools, this.context);\n }\n }\n\n protected findToolByName(name: string): AnyTool {\n const tool = this.tools.find((t) => t.name === name);\n if (!tool) {\n throw new Error(`Tool '${name}' not found in (${this.tools.map((t) => t.name).join(\", \")}).`);\n }\n return tool;\n }\n\n async createRequest(\n state: RequirementAgentRunState,\n forceTool: boolean,\n extraRules: Rule[] = [],\n ): Promise<RequirementAgentRequest> {\n const hidden: AnyTool[] = [];\n const allowed: AnyTool[] = [];\n const allTools: AnyTool[] = [...this.tools];\n const reasonByTool = new WeakMap<AnyTool, string | undefined>();\n\n let preventStop = false;\n const preventStepRefs: RuleEntry[] = [];\n\n let forced: AnyTool | null = null;\n let forcedLevel = 0;\n const rulesByTool = new Map<string, RuleEntry[]>();\n\n // Initialize rules map\n for (const tool of this.tools) {\n rulesByTool.set(tool.name, []);\n }\n\n // Group rules from requirements\n for (const requirement of this.entries.filter((e) => e.enabled)) {\n const generatedRules = await requirement.run(state);\n for (const rule of generatedRules) {\n const tool = this.findToolByName(rule.target);\n const rules = rulesByTool.get(tool.name) || [];\n rules.push({\n priority: requirement.priority,\n rule,\n requirement,\n });\n rulesByTool.set(tool.name, rules);\n }\n }\n\n // Add extra rules\n for (const rule of extraRules) {\n if (!rulesByTool.has(rule.target)) {\n throw new Error(`Tool '${rule.target}' not found.`);\n }\n\n const rules = rulesByTool.get(rule.target)!;\n const priority = rules.length > 0 ? Math.max(...rules.map((r) => r.priority)) + 1 : 1;\n rules.push({\n priority,\n rule,\n requirement: null,\n });\n }\n\n // Aggregate rules and infer required tool\n for (const [toolName, rules] of rulesByTool.entries()) {\n const tool = this.findToolByName(toolName);\n rules.sort((a, b) => b.priority - a.priority); // DESC\n\n const maxPriority = rules.length > 0 ? rules[0].priority : 1;\n let isAllowed = true;\n let isForced = false;\n let isHidden = false;\n let isPreventStop = false;\n\n for (const ruleEntry of rules) {\n const rule = ruleEntry.rule;\n if (!rule.allowed) {\n isAllowed = false;\n }\n if (rule.hidden) {\n isHidden = true;\n }\n if (rule.forced) {\n isForced = true;\n }\n if (rule.preventStop) {\n isPreventStop = true;\n preventStepRefs.push(ruleEntry);\n }\n if (rule.reason) {\n reasonByTool.set(tool, rule.reason);\n }\n }\n\n if (isAllowed && isHidden) {\n isAllowed = false;\n }\n\n if (isAllowed) {\n if (!allowed.includes(tool)) {\n allowed.push(tool);\n }\n if (isForced && (!forced || forcedLevel < maxPriority)) {\n forced = tool;\n forcedLevel = maxPriority;\n }\n }\n if (isHidden) {\n if (!hidden.includes(tool)) {\n hidden.push(tool);\n }\n }\n if (isPreventStop) {\n preventStop = true;\n }\n }\n\n // If forced tool is set, only allow it and final answer\n if (forced) {\n allowed.length = 0;\n if (!allowed.includes(forced)) {\n allowed.push(forced);\n }\n if (!allowed.includes(this.finalAnswer as any)) {\n allowed.push(this.finalAnswer as any);\n }\n }\n\n // If prevent stop is set and forced is not final answer, remove final answer\n if (preventStop && forced !== this.finalAnswer) {\n const finalAnswerIndex = allowed.indexOf(this.finalAnswer);\n if (finalAnswerIndex !== -1) {\n allowed.splice(finalAnswerIndex, 1);\n }\n }\n\n if (allowed.length === 0) {\n throw new AgentError(\n \"One of the generated rules is preventing the agent from continuing. \" +\n \"This indicates that the provided requirements may conflict with each other. \" +\n \"See the following rules and their attached requirements that are preventing the agent from continuing.\\n\" +\n JSON.stringify(preventStepRefs, null, 2),\n );\n }\n\n let toolChoice: ChatModelToolChoice = forced || \"required\";\n if (allowed.length === 1) {\n toolChoice = allowed[0];\n }\n\n // Override to auto if not forcing and not preventing stop\n if (!(toolChoice instanceof Tool) && !forceTool && !preventStop) {\n toolChoice = \"auto\";\n }\n\n return {\n tools: allTools,\n allowedTools: allowed,\n reasonByTool,\n toolChoice,\n finalAnswer: this.finalAnswer,\n hiddenTools: hidden,\n canStop: !preventStop,\n };\n }\n}\n\n/**\n * Create system message from template and request\n */\nexport async function createSystemMessage(\n template: PromptTemplate<typeof RequirementAgentSystemPromptInputSchema>,\n request: RequirementAgentRequest,\n): Promise<SystemMessage> {\n return new SystemMessage(\n template.render({\n tools: await Promise.all(\n request.tools\n .filter((tool) => !request.hiddenTools.includes(tool))\n .map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: JSON.stringify(await tool.inputSchema(), null, 2),\n allowed: String(request.allowedTools.includes(tool)),\n reason: request.reasonByTool.get(tool),\n })),\n ),\n finalAnswerName: request.finalAnswer.name,\n finalAnswerSchema: request.finalAnswer.customSchema\n ? JSON.stringify(request.finalAnswer.inputSchema, null, 2)\n : undefined,\n finalAnswerInstructions: request.finalAnswer.instructions, // default\n role: undefined, // default\n instructions: undefined, // default\n notes: undefined, // default\n }),\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/utils/llm.ts"],"names":["RequirementsReasoner","tools","entries","context","finalAnswer","update","requirements","requirement","push","entry","emitter","child","groupId","toCamelCase","name","creator","namespace","emit","init","findToolByName","tool","find","t","Error","map","join","createRequest","state","forceTool","extraRules","hidden","allowed","allTools","reasonByTool","WeakMap","preventStop","preventStepRefs","forced","forcedLevel","rulesByTool","Map","set","filter","e","enabled","generatedRules","run","rule","target","rules","get","priority","has","length","Math","max","r","toolName","sort","a","b","maxPriority","isAllowed","isForced","isHidden","isPreventStop","ruleEntry","reason","includes","finalAnswerIndex","indexOf","splice","AgentError","JSON","stringify","toolChoice","Tool","allowedTools","hiddenTools","canStop","createSystemMessage","template","request","SystemMessage","render","Promise","all","description","inputSchema","String","finalAnswerName","finalAnswerSchema","customSchema","undefined","finalAnswerInstructions","instructions","role","notes"],"mappings":"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","file":"llm.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, Tool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { AgentError } from \"@/agents/base.js\";\nimport { SystemMessage } from \"@/backend/message.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentRequest,\n RequirementAgentRunState,\n RequirementAgentSystemPromptInputSchema,\n} from \"@/agents/requirement/types.js\";\nimport {\n Requirement,\n RequirementCallbacks,\n Rule,\n} from \"@/agents/requirement/requirements/requirement.js\";\nimport { FinalAnswerTool } from \"./tool.js\";\nimport { ChatModelToolChoice } from \"@/backend/chat.js\";\nimport { toCamelCase } from \"remeda\";\n\ninterface RuleEntry {\n rule: Rule;\n requirement: Requirement | null;\n priority: number;\n}\n\n/**\n * Manages requirements and generates requests for the agent\n */\nexport class RequirementsReasoner {\n protected tools: AnyTool[];\n protected entries: Requirement[] = [];\n protected context: RunContext<any>;\n public readonly finalAnswer: FinalAnswerTool;\n\n constructor(tools: AnyTool[], finalAnswer: FinalAnswerTool, context: RunContext<any>) {\n this.tools = [...tools, finalAnswer];\n this.finalAnswer = finalAnswer;\n this.context = context;\n }\n\n async update(requirements: Requirement[]): Promise<void> {\n this.entries = [];\n\n for (const requirement of requirements) {\n this.entries.push(requirement);\n }\n\n for (const entry of this.entries) {\n const emitter = this.context.emitter.child<RequirementCallbacks>({\n groupId: toCamelCase(entry.name),\n creator: entry,\n });\n emitter.namespace.push(\"requirement\");\n\n const tools = [...this.tools];\n await emitter.emit(\"init\", { tools });\n await entry.init(tools, this.context);\n }\n }\n\n protected findToolByName(name: string): AnyTool {\n const tool = this.tools.find((t) => t.name === name);\n if (!tool) {\n throw new Error(`Tool '${name}' not found in (${this.tools.map((t) => t.name).join(\", \")}).`);\n }\n return tool;\n }\n\n async createRequest(\n state: RequirementAgentRunState,\n forceTool: boolean,\n extraRules: Rule[] = [],\n ): Promise<RequirementAgentRequest> {\n const hidden: AnyTool[] = [];\n const allowed: AnyTool[] = [];\n const allTools: AnyTool[] = [...this.tools];\n const reasonByTool = new WeakMap<AnyTool, string | undefined>();\n\n let preventStop = false;\n const preventStepRefs: RuleEntry[] = [];\n\n let forced: AnyTool | null = null;\n let forcedLevel = 0;\n const rulesByTool = new Map<string, RuleEntry[]>();\n\n // Initialize rules map\n for (const tool of this.tools) {\n rulesByTool.set(tool.name, []);\n }\n\n // Group rules from requirements\n for (const requirement of this.entries.filter((e) => e.enabled)) {\n const generatedRules = await requirement.run(state);\n for (const rule of generatedRules) {\n const tool = this.findToolByName(rule.target);\n const rules = rulesByTool.get(tool.name) || [];\n rules.push({\n priority: requirement.priority,\n rule,\n requirement,\n });\n rulesByTool.set(tool.name, rules);\n }\n }\n\n // Add extra rules\n for (const rule of extraRules) {\n if (!rulesByTool.has(rule.target)) {\n throw new Error(`Tool '${rule.target}' not found.`);\n }\n\n const rules = rulesByTool.get(rule.target)!;\n const priority = rules.length > 0 ? Math.max(...rules.map((r) => r.priority)) + 1 : 1;\n rules.push({\n priority,\n rule,\n requirement: null,\n });\n }\n\n // Aggregate rules and infer required tool\n for (const [toolName, rules] of rulesByTool.entries()) {\n const tool = this.findToolByName(toolName);\n rules.sort((a, b) => b.priority - a.priority); // DESC\n\n const maxPriority = rules.length > 0 ? rules[0].priority : 1;\n let isAllowed = true;\n let isForced = false;\n let isHidden = false;\n let isPreventStop = false;\n\n for (const ruleEntry of rules) {\n const rule = ruleEntry.rule;\n if (!rule.allowed) {\n isAllowed = false;\n }\n if (rule.hidden) {\n isHidden = true;\n }\n if (rule.forced) {\n isForced = true;\n }\n if (rule.preventStop) {\n isPreventStop = true;\n preventStepRefs.push(ruleEntry);\n }\n if (rule.reason) {\n reasonByTool.set(tool, rule.reason);\n }\n }\n\n if (isAllowed && isHidden) {\n isAllowed = false;\n }\n\n if (isAllowed) {\n if (!allowed.includes(tool)) {\n allowed.push(tool);\n }\n if (isForced && (!forced || forcedLevel < maxPriority)) {\n forced = tool;\n forcedLevel = maxPriority;\n }\n }\n if (isHidden) {\n if (!hidden.includes(tool)) {\n hidden.push(tool);\n }\n }\n if (isPreventStop) {\n preventStop = true;\n }\n }\n\n // If forced tool is set, only allow it and final answer\n if (forced) {\n allowed.length = 0;\n if (!allowed.includes(forced)) {\n allowed.push(forced);\n }\n if (!allowed.includes(this.finalAnswer as any)) {\n allowed.push(this.finalAnswer as any);\n }\n }\n\n // If prevent stop is set and forced is not final answer, remove final answer\n if (preventStop && forced !== this.finalAnswer) {\n const finalAnswerIndex = allowed.indexOf(this.finalAnswer);\n if (finalAnswerIndex !== -1) {\n allowed.splice(finalAnswerIndex, 1);\n }\n }\n\n if (allowed.length === 0) {\n throw new AgentError(\n \"One of the generated rules is preventing the agent from continuing. \" +\n \"This indicates that the provided requirements may conflict with each other. \" +\n \"See the following rules and their attached requirements that are preventing the agent from continuing.\\n\" +\n JSON.stringify(preventStepRefs, null, 2),\n );\n }\n\n let toolChoice: ChatModelToolChoice = forced || \"required\";\n if (allowed.length === 1) {\n toolChoice = allowed[0];\n }\n\n // Override to auto if not forcing and not preventing stop\n if (!(toolChoice instanceof Tool) && !forceTool && !preventStop) {\n toolChoice = \"auto\";\n }\n\n return {\n tools: allTools,\n allowedTools: allowed,\n reasonByTool,\n toolChoice,\n finalAnswer: this.finalAnswer,\n hiddenTools: hidden,\n canStop: !preventStop,\n };\n }\n}\n\n/**\n * Create system message from template and request\n */\nexport async function createSystemMessage(\n template: PromptTemplate<typeof RequirementAgentSystemPromptInputSchema>,\n request: RequirementAgentRequest,\n): Promise<SystemMessage> {\n return new SystemMessage(\n template.render({\n tools: await Promise.all(\n request.tools\n .filter((tool) => !request.hiddenTools.includes(tool))\n .map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: JSON.stringify(await tool.inputSchema(), null, 2),\n allowed: String(request.allowedTools.includes(tool)),\n reason: request.reasonByTool.get(tool),\n })),\n ),\n finalAnswerName: request.finalAnswer.name,\n finalAnswerSchema: request.finalAnswer.customSchema\n ? JSON.stringify(request.finalAnswer.inputSchema, null, 2)\n : undefined,\n finalAnswerInstructions: request.finalAnswer.instructions, // default\n role: undefined, // default\n instructions: undefined, // default\n notes: undefined, // default\n }),\n );\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { AnyTool } from '../../../tools/base.cjs';
|
|
|
2
2
|
import { RunContext } from '../../../context.cjs';
|
|
3
3
|
import { SystemMessage } from '../../../backend/message.cjs';
|
|
4
4
|
import { PromptTemplate } from '../../../template.cjs';
|
|
5
|
-
import { F as FinalAnswerTool, R as RequirementAgentRunState, a as RequirementAgentRequest, b as RequirementAgentSystemPromptInputSchema } from '../../../types-
|
|
5
|
+
import { F as FinalAnswerTool, R as RequirementAgentRunState, a as RequirementAgentRequest, b as RequirementAgentSystemPromptInputSchema } from '../../../types-BNsa3W7Z.cjs';
|
|
6
6
|
import { Requirement, Rule } from '../requirements/requirement.cjs';
|
|
7
7
|
import 'ajv';
|
|
8
8
|
import '../../../errors.cjs';
|
|
@@ -14,15 +14,15 @@ import '../../../cache/base.cjs';
|
|
|
14
14
|
import '../../../internals/helpers/schema.cjs';
|
|
15
15
|
import 'zod';
|
|
16
16
|
import 'zod-to-json-schema';
|
|
17
|
-
import '../../../emitter-
|
|
17
|
+
import '../../../emitter-D4OcelZ9.cjs';
|
|
18
18
|
import '../../../internals/helpers/promise.cjs';
|
|
19
19
|
import 'ai';
|
|
20
20
|
import '../../../memory/base.cjs';
|
|
21
|
-
import '../../../chat-
|
|
21
|
+
import '../../../chat-C20nYj46.cjs';
|
|
22
22
|
import '../../../backend/constants.cjs';
|
|
23
23
|
import '../../../logger/logger.cjs';
|
|
24
24
|
import 'pino';
|
|
25
|
-
import '../../../base-
|
|
25
|
+
import '../../../base-s3ioVIE9.cjs';
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
@@ -2,7 +2,7 @@ import { AnyTool } from '../../../tools/base.js';
|
|
|
2
2
|
import { RunContext } from '../../../context.js';
|
|
3
3
|
import { SystemMessage } from '../../../backend/message.js';
|
|
4
4
|
import { PromptTemplate } from '../../../template.js';
|
|
5
|
-
import { F as FinalAnswerTool, R as RequirementAgentRunState, a as RequirementAgentRequest, b as RequirementAgentSystemPromptInputSchema } from '../../../types-
|
|
5
|
+
import { F as FinalAnswerTool, R as RequirementAgentRunState, a as RequirementAgentRequest, b as RequirementAgentSystemPromptInputSchema } from '../../../types-DYtzF6ya.js';
|
|
6
6
|
import { Requirement, Rule } from '../requirements/requirement.js';
|
|
7
7
|
import 'ajv';
|
|
8
8
|
import '../../../errors.js';
|
|
@@ -14,15 +14,15 @@ import '../../../cache/base.js';
|
|
|
14
14
|
import '../../../internals/helpers/schema.js';
|
|
15
15
|
import 'zod';
|
|
16
16
|
import 'zod-to-json-schema';
|
|
17
|
-
import '../../../emitter-
|
|
17
|
+
import '../../../emitter-kHxkUxco.js';
|
|
18
18
|
import '../../../internals/helpers/promise.js';
|
|
19
19
|
import 'ai';
|
|
20
20
|
import '../../../memory/base.js';
|
|
21
|
-
import '../../../chat-
|
|
21
|
+
import '../../../chat-CfTNfR60.js';
|
|
22
22
|
import '../../../backend/constants.js';
|
|
23
23
|
import '../../../logger/logger.js';
|
|
24
24
|
import 'pino';
|
|
25
|
-
import '../../../base-
|
|
25
|
+
import '../../../base-BjzyQ8k6.js';
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/utils/llm.ts"],"names":["RequirementsReasoner","tools","entries","context","finalAnswer","update","requirements","requirement","push","entry","emitter","child","groupId","toCamelCase","name","creator","namespace","emit","init","findToolByName","tool","find","t","Error","map","join","createRequest","state","forceTool","extraRules","hidden","allowed","allTools","reasonByTool","WeakMap","preventStop","preventStepRefs","forced","forcedLevel","rulesByTool","Map","set","filter","e","enabled","generatedRules","run","rule","target","rules","get","priority","has","length","Math","max","r","toolName","sort","a","b","maxPriority","isAllowed","isForced","isHidden","isPreventStop","ruleEntry","reason","includes","finalAnswerIndex","indexOf","splice","AgentError","JSON","stringify","toolChoice","Tool","allowedTools","hiddenTools","canStop","createSystemMessage","template","request","SystemMessage","render","Promise","all","description","inputSchema","String","finalAnswerName","finalAnswerSchema","customSchema","undefined","finalAnswerInstructions","instructions","role","notes"],"mappings":"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","file":"llm.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, Tool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { AgentError } from \"@/agents/base.js\";\nimport { SystemMessage } from \"@/backend/message.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentRequest,\n RequirementAgentRunState,\n RequirementAgentSystemPromptInputSchema,\n} from \"@/agents/requirement/types.js\";\nimport {\n Requirement,\n RequirementCallbacks,\n Rule,\n} from \"@/agents/requirement/requirements/requirement.js\";\nimport { FinalAnswerTool } from \"./tool.js\";\nimport { ChatModelToolChoice } from \"@/backend/chat.js\";\nimport { toCamelCase } from \"remeda\";\n\ninterface RuleEntry {\n rule: Rule;\n requirement: Requirement | null;\n priority: number;\n}\n\n/**\n * Manages requirements and generates requests for the agent\n */\nexport class RequirementsReasoner {\n protected tools: AnyTool[];\n protected entries: Requirement[] = [];\n protected context: RunContext<any>;\n public readonly finalAnswer: FinalAnswerTool;\n\n constructor(tools: AnyTool[], finalAnswer: FinalAnswerTool, context: RunContext<any>) {\n this.tools = [...tools, finalAnswer];\n this.finalAnswer = finalAnswer;\n this.context = context;\n }\n\n async update(requirements: Requirement[]): Promise<void> {\n this.entries = [];\n\n for (const requirement of requirements) {\n this.entries.push(requirement);\n }\n\n for (const entry of this.entries) {\n const emitter = this.context.emitter.child<RequirementCallbacks>({\n groupId: toCamelCase(entry.name),\n creator: entry,\n });\n emitter.namespace.push(\"requirement\");\n\n const tools = [...this.tools];\n await emitter.emit(\"init\", { tools });\n await entry.init(tools, this.context);\n }\n }\n\n protected findToolByName(name: string): AnyTool {\n const tool = this.tools.find((t) => t.name === name);\n if (!tool) {\n throw new Error(`Tool '${name}' not found in (${this.tools.map((t) => t.name).join(\", \")}).`);\n }\n return tool;\n }\n\n async createRequest(\n state: RequirementAgentRunState,\n forceTool: boolean,\n extraRules: Rule[] = [],\n ): Promise<RequirementAgentRequest> {\n const hidden: AnyTool[] = [];\n const allowed: AnyTool[] = [];\n const allTools: AnyTool[] = [...this.tools];\n const reasonByTool = new WeakMap<AnyTool, string | undefined>();\n\n let preventStop = false;\n const preventStepRefs: RuleEntry[] = [];\n\n let forced: AnyTool | null = null;\n let forcedLevel = 0;\n const rulesByTool = new Map<string, RuleEntry[]>();\n\n // Initialize rules map\n for (const tool of this.tools) {\n rulesByTool.set(tool.name, []);\n }\n\n // Group rules from requirements\n for (const requirement of this.entries.filter((e) => e.enabled)) {\n const generatedRules = await requirement.run(state);\n for (const rule of generatedRules) {\n const tool = this.findToolByName(rule.target);\n const rules = rulesByTool.get(tool.name) || [];\n rules.push({\n priority: requirement.priority,\n rule,\n requirement,\n });\n rulesByTool.set(tool.name, rules);\n }\n }\n\n // Add extra rules\n for (const rule of extraRules) {\n if (!rulesByTool.has(rule.target)) {\n throw new Error(`Tool '${rule.target}' not found.`);\n }\n\n const rules = rulesByTool.get(rule.target)!;\n const priority = rules.length > 0 ? Math.max(...rules.map((r) => r.priority)) + 1 : 1;\n rules.push({\n priority,\n rule,\n requirement: null,\n });\n }\n\n // Aggregate rules and infer required tool\n for (const [toolName, rules] of rulesByTool.entries()) {\n const tool = this.findToolByName(toolName);\n rules.sort((a, b) => b.priority - a.priority); // DESC\n\n const maxPriority = rules.length > 0 ? rules[0].priority : 1;\n let isAllowed = true;\n let isForced = false;\n let isHidden = false;\n let isPreventStop = false;\n\n for (const ruleEntry of rules) {\n const rule = ruleEntry.rule;\n if (!rule.allowed) {\n isAllowed = false;\n }\n if (rule.hidden) {\n isHidden = true;\n }\n if (rule.forced) {\n isForced = true;\n }\n if (rule.preventStop) {\n isPreventStop = true;\n preventStepRefs.push(ruleEntry);\n }\n if (rule.reason) {\n reasonByTool.set(tool, rule.reason);\n }\n }\n\n if (isAllowed && isHidden) {\n isAllowed = false;\n }\n\n if (isAllowed) {\n if (!allowed.includes(tool)) {\n allowed.push(tool);\n }\n if (isForced && (!forced || forcedLevel < maxPriority)) {\n forced = tool;\n forcedLevel = maxPriority;\n }\n }\n if (isHidden) {\n if (!hidden.includes(tool)) {\n hidden.push(tool);\n }\n }\n if (isPreventStop) {\n preventStop = true;\n }\n }\n\n // If forced tool is set, only allow it and final answer\n if (forced) {\n allowed.length = 0;\n if (!allowed.includes(forced)) {\n allowed.push(forced);\n }\n if (!allowed.includes(this.finalAnswer as any)) {\n allowed.push(this.finalAnswer as any);\n }\n }\n\n // If prevent stop is set and forced is not final answer, remove final answer\n if (preventStop && forced !== this.finalAnswer) {\n const finalAnswerIndex = allowed.indexOf(this.finalAnswer);\n if (finalAnswerIndex !== -1) {\n allowed.splice(finalAnswerIndex, 1);\n }\n }\n\n if (allowed.length === 0) {\n throw new AgentError(\n \"One of the generated rules is preventing the agent from continuing. \" +\n \"This indicates that the provided requirements may conflict with each other. \" +\n \"See the following rules and their attached requirements that are preventing the agent from continuing.\\n\" +\n JSON.stringify(preventStepRefs, null, 2),\n );\n }\n\n let toolChoice: ChatModelToolChoice = forced || \"required\";\n if (allowed.length === 1) {\n toolChoice = allowed[0];\n }\n\n // Override to auto if not forcing and not preventing stop\n if (!(toolChoice instanceof Tool) && !forceTool && !preventStop) {\n toolChoice = \"auto\";\n }\n\n return {\n tools: allTools,\n allowedTools: allowed,\n reasonByTool,\n toolChoice,\n finalAnswer: this.finalAnswer,\n hiddenTools: hidden,\n canStop: !preventStop,\n };\n }\n}\n\n/**\n * Create system message from template and request\n */\nexport async function createSystemMessage(\n template: PromptTemplate<typeof RequirementAgentSystemPromptInputSchema>,\n request: RequirementAgentRequest,\n): Promise<SystemMessage> {\n return new SystemMessage(\n template.render({\n tools: await Promise.all(\n request.tools\n .filter((tool) => !request.hiddenTools.includes(tool))\n .map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: JSON.stringify(await tool.inputSchema(), null, 2),\n allowed: String(request.allowedTools.includes(tool)),\n reason: request.reasonByTool.get(tool),\n })),\n ),\n finalAnswerName: request.finalAnswer.name,\n finalAnswerSchema: request.finalAnswer.customSchema\n ? JSON.stringify(request.finalAnswer.inputSchema, null, 2)\n : undefined,\n finalAnswerInstructions: request.finalAnswer.instructions, // default\n role: undefined, // default\n instructions: undefined, // default\n notes: undefined, // default\n }),\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/utils/llm.ts"],"names":["RequirementsReasoner","tools","entries","context","finalAnswer","update","requirements","requirement","push","entry","emitter","child","groupId","toCamelCase","name","creator","namespace","emit","init","findToolByName","tool","find","t","Error","map","join","createRequest","state","forceTool","extraRules","hidden","allowed","allTools","reasonByTool","WeakMap","preventStop","preventStepRefs","forced","forcedLevel","rulesByTool","Map","set","filter","e","enabled","generatedRules","run","rule","target","rules","get","priority","has","length","Math","max","r","toolName","sort","a","b","maxPriority","isAllowed","isForced","isHidden","isPreventStop","ruleEntry","reason","includes","finalAnswerIndex","indexOf","splice","AgentError","JSON","stringify","toolChoice","Tool","allowedTools","hiddenTools","canStop","createSystemMessage","template","request","SystemMessage","render","Promise","all","description","inputSchema","String","finalAnswerName","finalAnswerSchema","customSchema","undefined","finalAnswerInstructions","instructions","role","notes"],"mappings":";;;;;;;AAiCO,MAAMA,oBAAAA,CAAAA;EAjCb;;;AAkCYC,EAAAA,KAAAA;AACAC,EAAAA,OAAAA,GAAyB,EAAA;AACzBC,EAAAA,OAAAA;AACMC,EAAAA,WAAAA;EAEhB,WAAA,CAAYH,KAAAA,EAAkBG,aAA8BD,OAAAA,EAA0B;AACpF,IAAA,IAAA,CAAKF,KAAAA,GAAQ;AAAIA,MAAAA,GAAAA,KAAAA;AAAOG,MAAAA;;AACxB,IAAA,IAAA,CAAKA,WAAAA,GAAcA,WAAAA;AACnB,IAAA,IAAA,CAAKD,OAAAA,GAAUA,OAAAA;AACjB,EAAA;AAEA,EAAA,MAAME,OAAOC,YAAAA,EAA4C;AACvD,IAAA,IAAA,CAAKJ,UAAU,EAAA;AAEf,IAAA,KAAA,MAAWK,eAAeD,YAAAA,EAAc;AACtC,MAAA,IAAA,CAAKJ,OAAAA,CAAQM,KAAKD,WAAAA,CAAAA;AACpB,IAAA;AAEA,IAAA,KAAA,MAAWE,KAAAA,IAAS,KAAKP,OAAAA,EAAS;AAChC,MAAA,MAAMQ,OAAAA,GAAU,IAAA,CAAKP,OAAAA,CAAQO,OAAAA,CAAQC,KAAAA,CAA4B;QAC/DC,OAAAA,EAASC,WAAAA,CAAYJ,MAAMK,IAAI,CAAA;QAC/BC,OAAAA,EAASN;OACX,CAAA;AACAC,MAAAA,OAAAA,CAAQM,SAAAA,CAAUR,KAAK,aAAA,CAAA;AAEvB,MAAA,MAAMP,KAAAA,GAAQ;WAAI,IAAA,CAAKA;;AACvB,MAAA,MAAMS,OAAAA,CAAQO,KAAK,MAAA,EAAQ;AAAEhB,QAAAA;OAAM,CAAA;AACnC,MAAA,MAAMQ,KAAAA,CAAMS,IAAAA,CAAKjB,KAAAA,EAAO,IAAA,CAAKE,OAAO,CAAA;AACtC,IAAA;AACF,EAAA;AAEUgB,EAAAA,cAAAA,CAAeL,IAAAA,EAAuB;AAC9C,IAAA,MAAMM,IAAAA,GAAO,KAAKnB,KAAAA,CAAMoB,IAAAA,CAAK,CAACC,CAAAA,KAAMA,CAAAA,CAAER,SAASA,IAAAA,CAAAA;AAC/C,IAAA,IAAI,CAACM,IAAAA,EAAM;AACT,MAAA,MAAM,IAAIG,KAAAA,CAAM,CAAA,MAAA,EAAST,IAAAA,CAAAA,gBAAAA,EAAuB,KAAKb,KAAAA,CAAMuB,GAAAA,CAAI,CAACF,CAAAA,KAAMA,EAAER,IAAI,CAAA,CAAEW,IAAAA,CAAK,IAAA,CAAA,CAAA,EAAA,CAAS,CAAA;AAC9F,IAAA;AACA,IAAA,OAAOL,IAAAA;AACT,EAAA;AAEA,EAAA,MAAMM,aAAAA,CACJC,KAAAA,EACAC,SAAAA,EACAC,UAAAA,GAAqB,EAAA,EACa;AAClC,IAAA,MAAMC,SAAoB,EAAA;AAC1B,IAAA,MAAMC,UAAqB,EAAA;AAC3B,IAAA,MAAMC,QAAAA,GAAsB;SAAI,IAAA,CAAK/B;;AACrC,IAAA,MAAMgC,YAAAA,uBAAmBC,OAAAA,EAAAA;AAEzB,IAAA,IAAIC,WAAAA,GAAc,KAAA;AAClB,IAAA,MAAMC,kBAA+B,EAAA;AAErC,IAAA,IAAIC,MAAAA,GAAyB,IAAA;AAC7B,IAAA,IAAIC,WAAAA,GAAc,CAAA;AAClB,IAAA,MAAMC,WAAAA,uBAAkBC,GAAAA,EAAAA;AAGxB,IAAA,KAAA,MAAWpB,IAAAA,IAAQ,KAAKnB,KAAAA,EAAO;AAC7BsC,MAAAA,WAAAA,CAAYE,GAAAA,CAAIrB,IAAAA,CAAKN,IAAAA,EAAM,EAAE,CAAA;AAC/B,IAAA;AAGA,IAAA,KAAA,MAAWP,WAAAA,IAAe,KAAKL,OAAAA,CAAQwC,MAAAA,CAAO,CAACC,CAAAA,KAAMA,CAAAA,CAAEC,OAAO,CAAA,EAAG;AAC/D,MAAA,MAAMC,cAAAA,GAAiB,MAAMtC,WAAAA,CAAYuC,GAAAA,CAAInB,KAAAA,CAAAA;AAC7C,MAAA,KAAA,MAAWoB,QAAQF,cAAAA,EAAgB;AACjC,QAAA,MAAMzB,IAAAA,GAAO,IAAA,CAAKD,cAAAA,CAAe4B,IAAAA,CAAKC,MAAM,CAAA;AAC5C,QAAA,MAAMC,QAAQV,WAAAA,CAAYW,GAAAA,CAAI9B,IAAAA,CAAKN,IAAI,KAAK,EAAA;AAC5CmC,QAAAA,KAAAA,CAAMzC,IAAAA,CAAK;AACT2C,UAAAA,QAAAA,EAAU5C,WAAAA,CAAY4C,QAAAA;AACtBJ,UAAAA,IAAAA;AACAxC,UAAAA;SACF,CAAA;AACAgC,QAAAA,WAAAA,CAAYE,GAAAA,CAAIrB,IAAAA,CAAKN,IAAAA,EAAMmC,KAAAA,CAAAA;AAC7B,MAAA;AACF,IAAA;AAGA,IAAA,KAAA,MAAWF,QAAQlB,UAAAA,EAAY;AAC7B,MAAA,IAAI,CAACU,WAAAA,CAAYa,GAAAA,CAAIL,IAAAA,CAAKC,MAAM,CAAA,EAAG;AACjC,QAAA,MAAM,IAAIzB,KAAAA,CAAM,CAAA,MAAA,EAASwB,IAAAA,CAAKC,MAAM,CAAA,YAAA,CAAc,CAAA;AACpD,MAAA;AAEA,MAAA,MAAMC,KAAAA,GAAQV,WAAAA,CAAYW,GAAAA,CAAIH,IAAAA,CAAKC,MAAM,CAAA;AACzC,MAAA,MAAMG,QAAAA,GAAWF,KAAAA,CAAMI,MAAAA,GAAS,CAAA,GAAIC,KAAKC,GAAAA,CAAG,GAAIN,KAAAA,CAAMzB,GAAAA,CAAI,CAACgC,CAAAA,KAAMA,CAAAA,CAAEL,QAAQ,CAAA,IAAK,CAAA,GAAI,CAAA;AACpFF,MAAAA,KAAAA,CAAMzC,IAAAA,CAAK;AACT2C,QAAAA,QAAAA;AACAJ,QAAAA,IAAAA;QACAxC,WAAAA,EAAa;OACf,CAAA;AACF,IAAA;AAGA,IAAA,KAAA,MAAW,CAACkD,QAAAA,EAAUR,KAAAA,CAAAA,IAAUV,WAAAA,CAAYrC,SAAO,EAAI;AACrD,MAAA,MAAMkB,IAAAA,GAAO,IAAA,CAAKD,cAAAA,CAAesC,QAAAA,CAAAA;AACjCR,MAAAA,KAAAA,CAAMS,KAAK,CAACC,CAAAA,EAAGC,MAAMA,CAAAA,CAAET,QAAAA,GAAWQ,EAAER,QAAQ,CAAA;AAE5C,MAAA,MAAMU,cAAcZ,KAAAA,CAAMI,MAAAA,GAAS,IAAIJ,KAAAA,CAAM,CAAA,EAAGE,QAAAA,GAAW,CAAA;AAC3D,MAAA,IAAIW,SAAAA,GAAY,IAAA;AAChB,MAAA,IAAIC,QAAAA,GAAW,KAAA;AACf,MAAA,IAAIC,QAAAA,GAAW,KAAA;AACf,MAAA,IAAIC,aAAAA,GAAgB,KAAA;AAEpB,MAAA,KAAA,MAAWC,aAAajB,KAAAA,EAAO;AAC7B,QAAA,MAAMF,OAAOmB,SAAAA,CAAUnB,IAAAA;AACvB,QAAA,IAAI,CAACA,KAAKhB,OAAAA,EAAS;AACjB+B,UAAAA,SAAAA,GAAY,KAAA;AACd,QAAA;AACA,QAAA,IAAIf,KAAKjB,MAAAA,EAAQ;AACfkC,UAAAA,QAAAA,GAAW,IAAA;AACb,QAAA;AACA,QAAA,IAAIjB,KAAKV,MAAAA,EAAQ;AACf0B,UAAAA,QAAAA,GAAW,IAAA;AACb,QAAA;AACA,QAAA,IAAIhB,KAAKZ,WAAAA,EAAa;AACpB8B,UAAAA,aAAAA,GAAgB,IAAA;AAChB7B,UAAAA,eAAAA,CAAgB5B,KAAK0D,SAAAA,CAAAA;AACvB,QAAA;AACA,QAAA,IAAInB,KAAKoB,MAAAA,EAAQ;AACflC,UAAAA,YAAAA,CAAaQ,GAAAA,CAAIrB,IAAAA,EAAM2B,IAAAA,CAAKoB,MAAM,CAAA;AACpC,QAAA;AACF,MAAA;AAEA,MAAA,IAAIL,aAAaE,QAAAA,EAAU;AACzBF,QAAAA,SAAAA,GAAY,KAAA;AACd,MAAA;AAEA,MAAA,IAAIA,SAAAA,EAAW;AACb,QAAA,IAAI,CAAC/B,OAAAA,CAAQqC,QAAAA,CAAShD,IAAAA,CAAAA,EAAO;AAC3BW,UAAAA,OAAAA,CAAQvB,KAAKY,IAAAA,CAAAA;AACf,QAAA;AACA,QAAA,IAAI2C,QAAAA,KAAa,CAAC1B,MAAAA,IAAUC,WAAAA,GAAcuB,WAAAA,CAAAA,EAAc;AACtDxB,UAAAA,MAAAA,GAASjB,IAAAA;AACTkB,UAAAA,WAAAA,GAAcuB,WAAAA;AAChB,QAAA;AACF,MAAA;AACA,MAAA,IAAIG,QAAAA,EAAU;AACZ,QAAA,IAAI,CAAClC,MAAAA,CAAOsC,QAAAA,CAAShD,IAAAA,CAAAA,EAAO;AAC1BU,UAAAA,MAAAA,CAAOtB,KAAKY,IAAAA,CAAAA;AACd,QAAA;AACF,MAAA;AACA,MAAA,IAAI6C,aAAAA,EAAe;AACjB9B,QAAAA,WAAAA,GAAc,IAAA;AAChB,MAAA;AACF,IAAA;AAGA,IAAA,IAAIE,MAAAA,EAAQ;AACVN,MAAAA,OAAAA,CAAQsB,MAAAA,GAAS,CAAA;AACjB,MAAA,IAAI,CAACtB,OAAAA,CAAQqC,QAAAA,CAAS/B,MAAAA,CAAAA,EAAS;AAC7BN,QAAAA,OAAAA,CAAQvB,KAAK6B,MAAAA,CAAAA;AACf,MAAA;AACA,MAAA,IAAI,CAACN,OAAAA,CAAQqC,QAAAA,CAAS,IAAA,CAAKhE,WAAW,CAAA,EAAU;AAC9C2B,QAAAA,OAAAA,CAAQvB,IAAAA,CAAK,KAAKJ,WAAW,CAAA;AAC/B,MAAA;AACF,IAAA;AAGA,IAAA,IAAI+B,WAAAA,IAAeE,MAAAA,KAAW,IAAA,CAAKjC,WAAAA,EAAa;AAC9C,MAAA,MAAMiE,gBAAAA,GAAmBtC,OAAAA,CAAQuC,OAAAA,CAAQ,IAAA,CAAKlE,WAAW,CAAA;AACzD,MAAA,IAAIiE,qBAAqB,EAAA,EAAI;AAC3BtC,QAAAA,OAAAA,CAAQwC,MAAAA,CAAOF,kBAAkB,CAAA,CAAA;AACnC,MAAA;AACF,IAAA;AAEA,IAAA,IAAItC,OAAAA,CAAQsB,WAAW,CAAA,EAAG;AACxB,MAAA,MAAM,IAAImB,WACR,0PAAA,GAGEC,IAAAA,CAAKC,UAAUtC,eAAAA,EAAiB,IAAA,EAAM,CAAA,CAAA,CAAA;AAE5C,IAAA;AAEA,IAAA,IAAIuC,aAAkCtC,MAAAA,IAAU,UAAA;AAChD,IAAA,IAAIN,OAAAA,CAAQsB,WAAW,CAAA,EAAG;AACxBsB,MAAAA,UAAAA,GAAa5C,QAAQ,CAAA,CAAA;AACvB,IAAA;AAGA,IAAA,IAAI,EAAE4C,UAAAA,YAAsBC,IAAAA,CAAAA,IAAS,CAAChD,SAAAA,IAAa,CAACO,WAAAA,EAAa;AAC/DwC,MAAAA,UAAAA,GAAa,MAAA;AACf,IAAA;AAEA,IAAA,OAAO;MACL1E,KAAAA,EAAO+B,QAAAA;MACP6C,YAAAA,EAAc9C,OAAAA;AACdE,MAAAA,YAAAA;AACA0C,MAAAA,UAAAA;AACAvE,MAAAA,WAAAA,EAAa,IAAA,CAAKA,WAAAA;MAClB0E,WAAAA,EAAahD,MAAAA;AACbiD,MAAAA,OAAAA,EAAS,CAAC5C;AACZ,KAAA;AACF,EAAA;AACF;AAKA,eAAsB6C,mBAAAA,CACpBC,UACAC,OAAAA,EAAgC;AAEhC,EAAA,OAAO,IAAIC,aAAAA,CACTF,QAAAA,CAASG,MAAAA,CAAO;AACdnF,IAAAA,KAAAA,EAAO,MAAMoF,OAAAA,CAAQC,GAAAA,CACnBJ,OAAAA,CAAQjF,KAAAA,CACLyC,OAAO,CAACtB,IAAAA,KAAS,CAAC8D,OAAAA,CAAQJ,YAAYV,QAAAA,CAAShD,IAAAA,CAAAA,CAAAA,CAC/CI,GAAAA,CAAI,OAAOJ,IAAAA,MAAU;AACpBN,MAAAA,IAAAA,EAAMM,IAAAA,CAAKN,IAAAA;AACXyE,MAAAA,WAAAA,EAAanE,IAAAA,CAAKmE,WAAAA;AAClBC,MAAAA,WAAAA,EAAaf,KAAKC,SAAAA,CAAU,MAAMtD,KAAKoE,WAAAA,EAAW,EAAI,MAAM,CAAA,CAAA;AAC5DzD,MAAAA,OAAAA,EAAS0D,MAAAA,CAAOP,OAAAA,CAAQL,YAAAA,CAAaT,QAAAA,CAAShD,IAAAA,CAAAA,CAAAA;MAC9C+C,MAAAA,EAAQe,OAAAA,CAAQjD,YAAAA,CAAaiB,GAAAA,CAAI9B,IAAAA;AACnC,KAAA,CAAA,CAAA,CAAA;AAEJsE,IAAAA,eAAAA,EAAiBR,QAAQ9E,WAAAA,CAAYU,IAAAA;IACrC6E,iBAAAA,EAAmBT,OAAAA,CAAQ9E,WAAAA,CAAYwF,YAAAA,GACnCnB,IAAAA,CAAKC,SAAAA,CAAUQ,QAAQ9E,WAAAA,CAAYoF,WAAAA,EAAa,IAAA,EAAM,CAAA,CAAA,GACtDK,MAAAA;AACJC,IAAAA,uBAAAA,EAAyBZ,QAAQ9E,WAAAA,CAAY2F,YAAAA;;IAC7CC,IAAAA,EAAMH,MAAAA;;IACNE,YAAAA,EAAcF,MAAAA;;IACdI,KAAAA,EAAOJ;AACT,GAAA,CAAA,CAAA;AAEJ;AA3BsBb,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"llm.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, Tool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { AgentError } from \"@/agents/base.js\";\nimport { SystemMessage } from \"@/backend/message.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentRequest,\n RequirementAgentRunState,\n RequirementAgentSystemPromptInputSchema,\n} from \"@/agents/requirement/types.js\";\nimport {\n Requirement,\n RequirementCallbacks,\n Rule,\n} from \"@/agents/requirement/requirements/requirement.js\";\nimport { FinalAnswerTool } from \"./tool.js\";\nimport { ChatModelToolChoice } from \"@/backend/chat.js\";\nimport { toCamelCase } from \"remeda\";\n\ninterface RuleEntry {\n rule: Rule;\n requirement: Requirement | null;\n priority: number;\n}\n\n/**\n * Manages requirements and generates requests for the agent\n */\nexport class RequirementsReasoner {\n protected tools: AnyTool[];\n protected entries: Requirement[] = [];\n protected context: RunContext<any>;\n public readonly finalAnswer: FinalAnswerTool;\n\n constructor(tools: AnyTool[], finalAnswer: FinalAnswerTool, context: RunContext<any>) {\n this.tools = [...tools, finalAnswer];\n this.finalAnswer = finalAnswer;\n this.context = context;\n }\n\n async update(requirements: Requirement[]): Promise<void> {\n this.entries = [];\n\n for (const requirement of requirements) {\n this.entries.push(requirement);\n }\n\n for (const entry of this.entries) {\n const emitter = this.context.emitter.child<RequirementCallbacks>({\n groupId: toCamelCase(entry.name),\n creator: entry,\n });\n emitter.namespace.push(\"requirement\");\n\n const tools = [...this.tools];\n await emitter.emit(\"init\", { tools });\n await entry.init(tools, this.context);\n }\n }\n\n protected findToolByName(name: string): AnyTool {\n const tool = this.tools.find((t) => t.name === name);\n if (!tool) {\n throw new Error(`Tool '${name}' not found in (${this.tools.map((t) => t.name).join(\", \")}).`);\n }\n return tool;\n }\n\n async createRequest(\n state: RequirementAgentRunState,\n forceTool: boolean,\n extraRules: Rule[] = [],\n ): Promise<RequirementAgentRequest> {\n const hidden: AnyTool[] = [];\n const allowed: AnyTool[] = [];\n const allTools: AnyTool[] = [...this.tools];\n const reasonByTool = new WeakMap<AnyTool, string | undefined>();\n\n let preventStop = false;\n const preventStepRefs: RuleEntry[] = [];\n\n let forced: AnyTool | null = null;\n let forcedLevel = 0;\n const rulesByTool = new Map<string, RuleEntry[]>();\n\n // Initialize rules map\n for (const tool of this.tools) {\n rulesByTool.set(tool.name, []);\n }\n\n // Group rules from requirements\n for (const requirement of this.entries.filter((e) => e.enabled)) {\n const generatedRules = await requirement.run(state);\n for (const rule of generatedRules) {\n const tool = this.findToolByName(rule.target);\n const rules = rulesByTool.get(tool.name) || [];\n rules.push({\n priority: requirement.priority,\n rule,\n requirement,\n });\n rulesByTool.set(tool.name, rules);\n }\n }\n\n // Add extra rules\n for (const rule of extraRules) {\n if (!rulesByTool.has(rule.target)) {\n throw new Error(`Tool '${rule.target}' not found.`);\n }\n\n const rules = rulesByTool.get(rule.target)!;\n const priority = rules.length > 0 ? Math.max(...rules.map((r) => r.priority)) + 1 : 1;\n rules.push({\n priority,\n rule,\n requirement: null,\n });\n }\n\n // Aggregate rules and infer required tool\n for (const [toolName, rules] of rulesByTool.entries()) {\n const tool = this.findToolByName(toolName);\n rules.sort((a, b) => b.priority - a.priority); // DESC\n\n const maxPriority = rules.length > 0 ? rules[0].priority : 1;\n let isAllowed = true;\n let isForced = false;\n let isHidden = false;\n let isPreventStop = false;\n\n for (const ruleEntry of rules) {\n const rule = ruleEntry.rule;\n if (!rule.allowed) {\n isAllowed = false;\n }\n if (rule.hidden) {\n isHidden = true;\n }\n if (rule.forced) {\n isForced = true;\n }\n if (rule.preventStop) {\n isPreventStop = true;\n preventStepRefs.push(ruleEntry);\n }\n if (rule.reason) {\n reasonByTool.set(tool, rule.reason);\n }\n }\n\n if (isAllowed && isHidden) {\n isAllowed = false;\n }\n\n if (isAllowed) {\n if (!allowed.includes(tool)) {\n allowed.push(tool);\n }\n if (isForced && (!forced || forcedLevel < maxPriority)) {\n forced = tool;\n forcedLevel = maxPriority;\n }\n }\n if (isHidden) {\n if (!hidden.includes(tool)) {\n hidden.push(tool);\n }\n }\n if (isPreventStop) {\n preventStop = true;\n }\n }\n\n // If forced tool is set, only allow it and final answer\n if (forced) {\n allowed.length = 0;\n if (!allowed.includes(forced)) {\n allowed.push(forced);\n }\n if (!allowed.includes(this.finalAnswer as any)) {\n allowed.push(this.finalAnswer as any);\n }\n }\n\n // If prevent stop is set and forced is not final answer, remove final answer\n if (preventStop && forced !== this.finalAnswer) {\n const finalAnswerIndex = allowed.indexOf(this.finalAnswer);\n if (finalAnswerIndex !== -1) {\n allowed.splice(finalAnswerIndex, 1);\n }\n }\n\n if (allowed.length === 0) {\n throw new AgentError(\n \"One of the generated rules is preventing the agent from continuing. \" +\n \"This indicates that the provided requirements may conflict with each other. \" +\n \"See the following rules and their attached requirements that are preventing the agent from continuing.\\n\" +\n JSON.stringify(preventStepRefs, null, 2),\n );\n }\n\n let toolChoice: ChatModelToolChoice = forced || \"required\";\n if (allowed.length === 1) {\n toolChoice = allowed[0];\n }\n\n // Override to auto if not forcing and not preventing stop\n if (!(toolChoice instanceof Tool) && !forceTool && !preventStop) {\n toolChoice = \"auto\";\n }\n\n return {\n tools: allTools,\n allowedTools: allowed,\n reasonByTool,\n toolChoice,\n finalAnswer: this.finalAnswer,\n hiddenTools: hidden,\n canStop: !preventStop,\n };\n }\n}\n\n/**\n * Create system message from template and request\n */\nexport async function createSystemMessage(\n template: PromptTemplate<typeof RequirementAgentSystemPromptInputSchema>,\n request: RequirementAgentRequest,\n): Promise<SystemMessage> {\n return new SystemMessage(\n template.render({\n tools: await Promise.all(\n request.tools\n .filter((tool) => !request.hiddenTools.includes(tool))\n .map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: JSON.stringify(await tool.inputSchema(), null, 2),\n allowed: String(request.allowedTools.includes(tool)),\n reason: request.reasonByTool.get(tool),\n })),\n ),\n finalAnswerName: request.finalAnswer.name,\n finalAnswerSchema: request.finalAnswer.customSchema\n ? JSON.stringify(request.finalAnswer.inputSchema, null, 2)\n : undefined,\n finalAnswerInstructions: request.finalAnswer.instructions, // default\n role: undefined, // default\n instructions: undefined, // default\n notes: undefined, // default\n }),\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/utils/tool.ts"],"names":["runTool","tools","msg","context","isToolCallValid","ChatModelToolCallError","toolName","generatedContent","JSON","stringify","name","parameters","input","generatedError","result","tool","output","StringToolOutput","error","find","ToolError","run","toolCallMsg","Tool","contextKeys","Memory","state","memory","e","FrameworkError","ensure","FinalAnswerToolSchema","z","object","response","string","describe","FinalAnswerTool","description","instructions","customSchema","emitter","expectedOutput","undefined","ZodSchema","Emitter","root","child","namespace","creator","inputSchema","_run","_options","_ctx","answer","AssistantMessage"],"mappings":";;;;;;;;;;;;AAmCA,eAAsBA,OAAAA,CACpBC,KAAAA,EACAC,GAAAA,EACAC,OAAAA,EAA4B;AAE5B,EAAA,IAAI,CAACC,yBAAAA,CAAgBF,GAAAA,CAAAA,EAAM;AACzB,IAAA,MAAM,IAAIG,iCAAAA,CAAuB,CAAA,MAAA,EAASH,IAAII,QAAQ,CAAA,iBAAA,CAAA,EAAqB,EAAA,EAAI;AAC7EC,MAAAA,gBAAAA,EAAkBC,KAAKC,SAAAA,CAAU;AAAEC,QAAAA,IAAAA,EAAMR,GAAAA,CAAII,QAAAA;AAAUK,QAAAA,UAAAA,EAAYT,GAAAA,CAAIU;OAAM,CAAA;MAC7EC,cAAAA,EAAgB;KAClB,CAAA;AACF;AAEA,EAAA,MAAMC,MAAAA,GAA+B;AACnCZ,IAAAA,GAAAA;IACAa,IAAAA,EAAM,IAAA;AACNH,IAAAA,KAAAA,EAAOV,GAAAA,CAAIU,KAAAA;IACXI,MAAAA,EAAQ,IAAIC,0BAAiB,EAAA,CAAA;IAC7BC,KAAAA,EAAO;AACT,GAAA;AAEA,EAAA,IAAI;AACFJ,IAAAA,MAAAA,CAAOC,IAAAA,GAAOd,MAAMkB,IAAAA,CAAK,CAACJ,SAASA,IAAAA,CAAKL,IAAAA,KAASR,GAAAA,CAAII,QAAQ,CAAA,IAAK,IAAA;AAClE,IAAA,IAAI,CAACQ,OAAOC,IAAAA,EAAM;AAChB,MAAA,MAAM,IAAIK,kBAAAA,CAAU,CAAA,MAAA,EAASlB,GAAAA,CAAII,QAAQ,CAAA,iBAAA,CAAmB,CAAA;AAC9D;AAEAQ,IAAAA,MAAAA,CAAOE,MAAAA,GAAS,MAAMF,MAAAA,CAAOC,IAAAA,CAAKM,IAAIP,MAAAA,CAAOF,KAAK,EAAET,OAAAA,CAAQ;MAC1D,GAAGA,OAAAA;MACHmB,WAAAA,EAAapB,GAAAA;AACb,MAAA,CAACqB,aAAAA,CAAKC,WAAAA,CAAYC,MAAM,GAAGtB,QAAQuB,KAAAA,CAAMC;KAC3C,CAAA;AACF,
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/utils/tool.ts"],"names":["runTool","tools","msg","context","isToolCallValid","ChatModelToolCallError","toolName","generatedContent","JSON","stringify","name","parameters","input","generatedError","result","tool","output","StringToolOutput","error","find","ToolError","run","toolCallMsg","Tool","contextKeys","Memory","state","memory","e","FrameworkError","ensure","FinalAnswerToolSchema","z","object","response","string","describe","FinalAnswerTool","description","instructions","customSchema","emitter","expectedOutput","undefined","ZodSchema","Emitter","root","child","namespace","creator","inputSchema","_run","_options","_ctx","answer","AssistantMessage"],"mappings":"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","file":"tool.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AnyTool,\n BaseToolRunOptions,\n StringToolOutput,\n Tool,\n ToolError,\n ToolOutput,\n} from \"@/tools/base.js\";\nimport { ToolCallPart } from \"ai\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { z, ZodSchema } from \"zod\";\nimport { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { AssistantMessage } from \"@/backend/message.js\";\nimport { RunContext } from \"@/context.js\";\nimport { isToolCallValid } from \"@/adapters/vercel/backend/utils.js\";\nimport { ChatModelToolCallError } from \"@/backend/errors.js\";\n\n// Tool invocation result\nexport interface ToolInvocationResult {\n msg: ToolCallPart;\n tool: AnyTool | null;\n input: unknown;\n output: ToolOutput;\n error: FrameworkError | null;\n}\n\n/**\n * Run a single tool with error handling\n */\nexport async function runTool(\n tools: AnyTool[],\n msg: ToolCallPart,\n context: Record<string, any>,\n): Promise<ToolInvocationResult> {\n if (!isToolCallValid(msg)) {\n throw new ChatModelToolCallError(`Tool '${msg.toolName}' does not exist!`, [], {\n generatedContent: JSON.stringify({ name: msg.toolName, parameters: msg.input }),\n generatedError: \"The generated tool call is invalid. Cannot parse the args.\",\n });\n }\n\n const result: ToolInvocationResult = {\n msg,\n tool: null,\n input: msg.input,\n output: new StringToolOutput(\"\"),\n error: null,\n };\n\n try {\n result.tool = tools.find((tool) => tool.name === msg.toolName) || null;\n if (!result.tool) {\n throw new ToolError(`Tool '${msg.toolName}' does not exist!`);\n }\n\n result.output = await result.tool.run(result.input).context({\n ...context,\n toolCallMsg: msg,\n [Tool.contextKeys.Memory]: context.state.memory,\n });\n } catch (e) {\n if (e instanceof ToolError) {\n result.error = FrameworkError.ensure(e);\n } else {\n throw e;\n }\n }\n\n return result;\n}\n\n// Final answer tool schema\nconst FinalAnswerToolSchema = z.object({\n response: z.string().describe(\"The final answer to the user\"),\n});\n\n/**\n * Special tool for capturing final answers\n */\nexport class FinalAnswerTool extends Tool {\n public readonly name = \"final_answer\";\n public readonly description = \"Sends the final answer to the user\";\n public instructions?: string;\n public customSchema: boolean;\n public readonly emitter: Emitter<any>;\n\n protected expectedOutput: string | ZodSchema | null;\n protected state: RequirementAgentRunState;\n\n constructor(expectedOutput: string | ZodSchema | null, state: RequirementAgentRunState) {\n super();\n this.expectedOutput = expectedOutput;\n this.state = state;\n this.instructions = typeof expectedOutput === \"string\" ? expectedOutput : undefined;\n this.customSchema = expectedOutput instanceof ZodSchema;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"final_answer\"],\n creator: this,\n });\n }\n\n inputSchema(): ZodSchema {\n const expectedOutput = this.expectedOutput;\n\n if (!expectedOutput) {\n return FinalAnswerToolSchema;\n } else if (expectedOutput instanceof ZodSchema) {\n return expectedOutput;\n } else if (typeof expectedOutput === \"string\") {\n return z.object({\n response: z.string().describe(expectedOutput),\n });\n } else {\n return FinalAnswerToolSchema;\n }\n }\n\n async _run(\n input: any,\n _options: BaseToolRunOptions,\n _ctx: RunContext<typeof this>,\n ): Promise<StringToolOutput> {\n this.state.result = input;\n\n if (this.expectedOutput instanceof ZodSchema) {\n // For custom schemas, serialize the entire input\n this.state.answer = new AssistantMessage(JSON.stringify(input));\n } else {\n // For string schemas, use the response field\n this.state.answer = new AssistantMessage(input.response);\n }\n\n return new StringToolOutput(\"Message has been sent\");\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '../../../tools/base.cjs';
|
|
2
2
|
import 'ai';
|
|
3
3
|
import '../../../errors.cjs';
|
|
4
|
-
import '../../../emitter-
|
|
4
|
+
import '../../../emitter-D4OcelZ9.cjs';
|
|
5
5
|
import 'zod';
|
|
6
|
-
export { F as FinalAnswerTool, T as ToolInvocationResult, r as runTool } from '../../../types-
|
|
6
|
+
export { F as FinalAnswerTool, T as ToolInvocationResult, r as runTool } from '../../../types-BNsa3W7Z.cjs';
|
|
7
7
|
import '../../../context.cjs';
|
|
8
8
|
import 'ajv';
|
|
9
9
|
import '../../../internals/serializable.cjs';
|
|
@@ -17,8 +17,8 @@ import '../../../internals/helpers/promise.cjs';
|
|
|
17
17
|
import '../../../memory/base.cjs';
|
|
18
18
|
import '../../../backend/message.cjs';
|
|
19
19
|
import '../../../template.cjs';
|
|
20
|
-
import '../../../chat-
|
|
20
|
+
import '../../../chat-C20nYj46.cjs';
|
|
21
21
|
import '../../../backend/constants.cjs';
|
|
22
22
|
import '../../../logger/logger.cjs';
|
|
23
23
|
import 'pino';
|
|
24
|
-
import '../../../base-
|
|
24
|
+
import '../../../base-s3ioVIE9.cjs';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '../../../tools/base.js';
|
|
2
2
|
import 'ai';
|
|
3
3
|
import '../../../errors.js';
|
|
4
|
-
import '../../../emitter-
|
|
4
|
+
import '../../../emitter-kHxkUxco.js';
|
|
5
5
|
import 'zod';
|
|
6
|
-
export { F as FinalAnswerTool, T as ToolInvocationResult, r as runTool } from '../../../types-
|
|
6
|
+
export { F as FinalAnswerTool, T as ToolInvocationResult, r as runTool } from '../../../types-DYtzF6ya.js';
|
|
7
7
|
import '../../../context.js';
|
|
8
8
|
import 'ajv';
|
|
9
9
|
import '../../../internals/serializable.js';
|
|
@@ -17,8 +17,8 @@ import '../../../internals/helpers/promise.js';
|
|
|
17
17
|
import '../../../memory/base.js';
|
|
18
18
|
import '../../../backend/message.js';
|
|
19
19
|
import '../../../template.js';
|
|
20
|
-
import '../../../chat-
|
|
20
|
+
import '../../../chat-CfTNfR60.js';
|
|
21
21
|
import '../../../backend/constants.js';
|
|
22
22
|
import '../../../logger/logger.js';
|
|
23
23
|
import 'pino';
|
|
24
|
-
import '../../../base-
|
|
24
|
+
import '../../../base-BjzyQ8k6.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/utils/tool.ts"],"names":["runTool","tools","msg","context","isToolCallValid","ChatModelToolCallError","toolName","generatedContent","JSON","stringify","name","parameters","input","generatedError","result","tool","output","StringToolOutput","error","find","ToolError","run","toolCallMsg","Tool","contextKeys","Memory","state","memory","e","FrameworkError","ensure","FinalAnswerToolSchema","z","object","response","string","describe","FinalAnswerTool","description","instructions","customSchema","emitter","expectedOutput","undefined","ZodSchema","Emitter","root","child","namespace","creator","inputSchema","_run","_options","_ctx","answer","AssistantMessage"],"mappings":";;;;;;;;;;AAmCA,eAAsBA,OAAAA,CACpBC,KAAAA,EACAC,GAAAA,EACAC,OAAAA,EAA4B;AAE5B,EAAA,IAAI,CAACC,eAAAA,CAAgBF,GAAAA,CAAAA,EAAM;AACzB,IAAA,MAAM,IAAIG,sBAAAA,CAAuB,CAAA,MAAA,EAASH,IAAII,QAAQ,CAAA,iBAAA,CAAA,EAAqB,EAAA,EAAI;AAC7EC,MAAAA,gBAAAA,EAAkBC,KAAKC,SAAAA,CAAU;AAAEC,QAAAA,IAAAA,EAAMR,GAAAA,CAAII,QAAAA;AAAUK,QAAAA,UAAAA,EAAYT,GAAAA,CAAIU;OAAM,CAAA;MAC7EC,cAAAA,EAAgB;KAClB,CAAA;AACF;AAEA,EAAA,MAAMC,MAAAA,GAA+B;AACnCZ,IAAAA,GAAAA;IACAa,IAAAA,EAAM,IAAA;AACNH,IAAAA,KAAAA,EAAOV,GAAAA,CAAIU,KAAAA;IACXI,MAAAA,EAAQ,IAAIC,iBAAiB,EAAA,CAAA;IAC7BC,KAAAA,EAAO;AACT,GAAA;AAEA,EAAA,IAAI;AACFJ,IAAAA,MAAAA,CAAOC,IAAAA,GAAOd,MAAMkB,IAAAA,CAAK,CAACJ,SAASA,IAAAA,CAAKL,IAAAA,KAASR,GAAAA,CAAII,QAAQ,CAAA,IAAK,IAAA;AAClE,IAAA,IAAI,CAACQ,OAAOC,IAAAA,EAAM;AAChB,MAAA,MAAM,IAAIK,SAAAA,CAAU,CAAA,MAAA,EAASlB,GAAAA,CAAII,QAAQ,CAAA,iBAAA,CAAmB,CAAA;AAC9D;AAEAQ,IAAAA,MAAAA,CAAOE,MAAAA,GAAS,MAAMF,MAAAA,CAAOC,IAAAA,CAAKM,IAAIP,MAAAA,CAAOF,KAAK,EAAET,OAAAA,CAAQ;MAC1D,GAAGA,OAAAA;MACHmB,WAAAA,EAAapB,GAAAA;AACb,MAAA,CAACqB,IAAAA,CAAKC,WAAAA,CAAYC,MAAM,GAAGtB,QAAQuB,KAAAA,CAAMC;KAC3C,CAAA;AACF,
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/utils/tool.ts"],"names":["runTool","tools","msg","context","isToolCallValid","ChatModelToolCallError","toolName","generatedContent","JSON","stringify","name","parameters","input","generatedError","result","tool","output","StringToolOutput","error","find","ToolError","run","toolCallMsg","Tool","contextKeys","Memory","state","memory","e","FrameworkError","ensure","FinalAnswerToolSchema","z","object","response","string","describe","FinalAnswerTool","description","instructions","customSchema","emitter","expectedOutput","undefined","ZodSchema","Emitter","root","child","namespace","creator","inputSchema","_run","_options","_ctx","answer","AssistantMessage"],"mappings":"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","file":"tool.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AnyTool,\n BaseToolRunOptions,\n StringToolOutput,\n Tool,\n ToolError,\n ToolOutput,\n} from \"@/tools/base.js\";\nimport { ToolCallPart } from \"ai\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { z, ZodSchema } from \"zod\";\nimport { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { AssistantMessage } from \"@/backend/message.js\";\nimport { RunContext } from \"@/context.js\";\nimport { isToolCallValid } from \"@/adapters/vercel/backend/utils.js\";\nimport { ChatModelToolCallError } from \"@/backend/errors.js\";\n\n// Tool invocation result\nexport interface ToolInvocationResult {\n msg: ToolCallPart;\n tool: AnyTool | null;\n input: unknown;\n output: ToolOutput;\n error: FrameworkError | null;\n}\n\n/**\n * Run a single tool with error handling\n */\nexport async function runTool(\n tools: AnyTool[],\n msg: ToolCallPart,\n context: Record<string, any>,\n): Promise<ToolInvocationResult> {\n if (!isToolCallValid(msg)) {\n throw new ChatModelToolCallError(`Tool '${msg.toolName}' does not exist!`, [], {\n generatedContent: JSON.stringify({ name: msg.toolName, parameters: msg.input }),\n generatedError: \"The generated tool call is invalid. Cannot parse the args.\",\n });\n }\n\n const result: ToolInvocationResult = {\n msg,\n tool: null,\n input: msg.input,\n output: new StringToolOutput(\"\"),\n error: null,\n };\n\n try {\n result.tool = tools.find((tool) => tool.name === msg.toolName) || null;\n if (!result.tool) {\n throw new ToolError(`Tool '${msg.toolName}' does not exist!`);\n }\n\n result.output = await result.tool.run(result.input).context({\n ...context,\n toolCallMsg: msg,\n [Tool.contextKeys.Memory]: context.state.memory,\n });\n } catch (e) {\n if (e instanceof ToolError) {\n result.error = FrameworkError.ensure(e);\n } else {\n throw e;\n }\n }\n\n return result;\n}\n\n// Final answer tool schema\nconst FinalAnswerToolSchema = z.object({\n response: z.string().describe(\"The final answer to the user\"),\n});\n\n/**\n * Special tool for capturing final answers\n */\nexport class FinalAnswerTool extends Tool {\n public readonly name = \"final_answer\";\n public readonly description = \"Sends the final answer to the user\";\n public instructions?: string;\n public customSchema: boolean;\n public readonly emitter: Emitter<any>;\n\n protected expectedOutput: string | ZodSchema | null;\n protected state: RequirementAgentRunState;\n\n constructor(expectedOutput: string | ZodSchema | null, state: RequirementAgentRunState) {\n super();\n this.expectedOutput = expectedOutput;\n this.state = state;\n this.instructions = typeof expectedOutput === \"string\" ? expectedOutput : undefined;\n this.customSchema = expectedOutput instanceof ZodSchema;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"final_answer\"],\n creator: this,\n });\n }\n\n inputSchema(): ZodSchema {\n const expectedOutput = this.expectedOutput;\n\n if (!expectedOutput) {\n return FinalAnswerToolSchema;\n } else if (expectedOutput instanceof ZodSchema) {\n return expectedOutput;\n } else if (typeof expectedOutput === \"string\") {\n return z.object({\n response: z.string().describe(expectedOutput),\n });\n } else {\n return FinalAnswerToolSchema;\n }\n }\n\n async _run(\n input: any,\n _options: BaseToolRunOptions,\n _ctx: RunContext<typeof this>,\n ): Promise<StringToolOutput> {\n this.state.result = input;\n\n if (this.expectedOutput instanceof ZodSchema) {\n // For custom schemas, serialize the entire input\n this.state.answer = new AssistantMessage(JSON.stringify(input));\n } else {\n // For string schemas, use the response field\n this.state.answer = new AssistantMessage(input.response);\n }\n\n return new StringToolOutput(\"Message has been sent\");\n }\n}\n"]}
|
|
@@ -1 +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;
|
|
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,EAAA;AAEAC,EAAAA,QAAAA,CAASC,KAAAA,EAA2B;AAClC,IAAA,IAAI,CAAC,KAAKL,OAAAA,EAAS;AACjB,MAAA;AACF,IAAA;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,MAAA;IACF,CAAA,MAAO;AACL,MAAA,IAAA,CAAKF,aAAAA,GAAgB;AAACQ,QAAAA;;AACxB,IAAA;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,IAAA;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,IAAA;AACF,EAAA;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,EAAA;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,EAAA;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"]}
|
|
@@ -1 +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;
|
|
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,EAAA;AAEAC,EAAAA,QAAAA,CAASC,KAAAA,EAA2B;AAClC,IAAA,IAAI,CAAC,KAAKL,OAAAA,EAAS;AACjB,MAAA;AACF,IAAA;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,MAAA;IACF,CAAA,MAAO;AACL,MAAA,IAAA,CAAKF,aAAAA,GAAgB;AAACQ,QAAAA;;AACxB,IAAA;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,IAAA;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,IAAA;AACF,EAAA;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,EAAA;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,EAAA;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"]}
|