beeai-framework 0.1.28 → 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 +3 -3
- package/dist/adapters/anthropic/backend/chat.d.ts +3 -3
- 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-BAVf6-xf.d.ts → agent-s3uhvAba.d.ts} +5 -5
- package/dist/{agent-DHO-oJQf.d.cts → agent-zfT__iq9.d.cts} +5 -5
- 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.d.cts +1 -1
- package/dist/agents/react/prompts.d.ts +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.d.cts +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.ts +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 +5 -5
- package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
- 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 +5 -5
- package/dist/agents/react/runners/default/runner.d.ts +5 -5
- 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.d.cts +1 -1
- package/dist/agents/react/runners/granite/prompts.d.ts +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 +5 -5
- package/dist/agents/react/runners/granite/runner.d.ts +5 -5
- 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 +2 -2
- package/dist/agents/requirement/prompts.d.ts +2 -2
- 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-BfhNzUYf.d.ts → base-BjzyQ8k6.d.ts} +2 -2
- package/dist/{base-BqzN2QwB.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-DaqV3woF.d.cts → chat-C20nYj46.d.cts} +3 -3
- package/dist/{chat-DTxmaKP0.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-UkIkNrek.d.cts → emitter-D4OcelZ9.d.cts} +2 -2
- package/dist/{emitter-CL56qab4.d.ts → emitter-kHxkUxco.d.ts} +2 -2
- 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 +3 -3
- package/dist/tools/database/milvus.d.ts +3 -3
- 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-YoNQSxQH.d.cts → types-BNsa3W7Z.d.cts} +4 -4
- package/dist/{types-YT-WdK3m.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 +38 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/requirements/requirement.ts"],"names":["Requirement","name","state","enabled","middlewares","_priority","priority","value","ValueError","emitter","Emitter","root","child","namespace","toCamelCase","creator","run","RunContext","enter","signal","undefined","params","context","_run","init","tools","_","emit","clone","instance","Object","create","getPrototypeOf","enumerable","RequirementError","FrameworkError","message","requirement","cause","isFatal","isRetryable"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBO,MAAeA,WAAAA,CAAAA;AAAAA,EAAAA;;;AACbC,EAAAA,IAAAA;AACAC,EAAAA,KAAAA,GAA6B,EAAC;EAC9BC,OAAAA,GAAU,IAAA;AACVC,EAAAA,WAAAA,GAA6C,EAAA;EAE1CC,SAAAA,GAAY,EAAA;AAEtB,EAAA,WAAA,CAAYJ,IAAAA,EAAe;AACzB,IAAA,IAAA,CAAKA,IAAAA,GAAOA,IAAAA,IAAQ,IAAA,CAAK,WAAA,CAAYA,IAAAA;AACvC;AAEA,EAAA,IAAIK,QAAAA,GAAmB;AACrB,IAAA,OAAO,IAAA,CAAKD,SAAAA;AACd;AAEA,EAAA,IAAIC,SAASC,KAAAA,EAAe;AAC1B,IAAA,IAAIA,SAAS,CAAA,EAAG;AACd,MAAA,MAAM,IAAIC,WAAW,sCAAA,CAAA;AACvB;AACA,IAAA,IAAA,CAAKH,SAAAA,GAAYE,KAAAA;AACnB;AAEA,EAAA,IACIE,OAAAA,GAAyC;AAC3C,IAAA,OAAOC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,aAAA;AAAeC,QAAAA,WAAAA,CAAY,KAAKb,IAAI;;MAChDc,OAAAA,EAAS;KACX,CAAA;AACF;AAEAC,EAAAA,GAAAA,CAAId,KAAAA,EAAiC;AACnC,IAAA,OAAOe,UAAAA,CAAWC,MAChB,IAAA,EACA;MAAEC,MAAAA,EAAQC,MAAAA;MAAWC,MAAAA,EAAQ;AAACnB,QAAAA;;AAAgB,KAAA,EAC9C,OAAOoB,OAAAA,KAAAA;AACL,MAAA,OAAO,MAAM,IAAA,CAAKC,IAAAA,CAAKrB,KAAAA,EAAOoB,OAAAA,CAAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/requirement.ts"],"names":["Requirement","name","state","enabled","middlewares","_priority","priority","value","ValueError","emitter","Emitter","root","child","namespace","toCamelCase","creator","run","RunContext","enter","signal","undefined","params","context","_run","init","tools","_","emit","clone","instance","Object","create","getPrototypeOf","enumerable","RequirementError","FrameworkError","message","requirement","cause","isFatal","isRetryable"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBO,MAAeA,WAAAA,CAAAA;AAAAA,EAAAA;;;AACbC,EAAAA,IAAAA;AACAC,EAAAA,KAAAA,GAA6B,EAAC;EAC9BC,OAAAA,GAAU,IAAA;AACVC,EAAAA,WAAAA,GAA6C,EAAA;EAE1CC,SAAAA,GAAY,EAAA;AAEtB,EAAA,WAAA,CAAYJ,IAAAA,EAAe;AACzB,IAAA,IAAA,CAAKA,IAAAA,GAAOA,IAAAA,IAAQ,IAAA,CAAK,WAAA,CAAYA,IAAAA;AACvC,EAAA;AAEA,EAAA,IAAIK,QAAAA,GAAmB;AACrB,IAAA,OAAO,IAAA,CAAKD,SAAAA;AACd,EAAA;AAEA,EAAA,IAAIC,SAASC,KAAAA,EAAe;AAC1B,IAAA,IAAIA,SAAS,CAAA,EAAG;AACd,MAAA,MAAM,IAAIC,WAAW,sCAAA,CAAA;AACvB,IAAA;AACA,IAAA,IAAA,CAAKH,SAAAA,GAAYE,KAAAA;AACnB,EAAA;AAEA,EAAA,IACIE,OAAAA,GAAyC;AAC3C,IAAA,OAAOC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,aAAA;AAAeC,QAAAA,WAAAA,CAAY,KAAKb,IAAI;;MAChDc,OAAAA,EAAS;KACX,CAAA;AACF,EAAA;AAEAC,EAAAA,GAAAA,CAAId,KAAAA,EAAiC;AACnC,IAAA,OAAOe,UAAAA,CAAWC,MAChB,IAAA,EACA;MAAEC,MAAAA,EAAQC,MAAAA;MAAWC,MAAAA,EAAQ;AAACnB,QAAAA;;AAAgB,KAAA,EAC9C,OAAOoB,OAAAA,KAAAA;AACL,MAAA,OAAO,MAAM,IAAA,CAAKC,IAAAA,CAAKrB,KAAAA,EAAOoB,OAAAA,CAAAA;IAChC,CAAA,CAAA;AAEJ,EAAA;EAIA,MAAME,IAAAA,CAAKC,OAAkBC,CAAAA,EAAmC;AAC9D,IAAA,MAAM,IAAA,CAAKjB,OAAAA,CAAQkB,IAAAA,CAAK,MAAA,EAAQ;AAAEF,MAAAA;KAAM,CAAA;AAC1C,EAAA;AAEA,EAAA,MAAMG,KAAAA,GAAuB;AAC3B,IAAA,MAAMC,WAAWC,MAAAA,CAAOC,MAAAA,CAAOD,MAAAA,CAAOE,cAAAA,CAAe,IAAI,CAAA,CAAA;AACzDH,IAAAA,QAAAA,CAAS5B,OAAO,IAAA,CAAKA,IAAAA;AACrB4B,IAAAA,QAAAA,CAASvB,WAAW,IAAA,CAAKA,QAAAA;AACzBuB,IAAAA,QAAAA,CAAS1B,UAAU,IAAA,CAAKA,OAAAA;AACxB0B,IAAAA,QAAAA,CAAS3B,KAAAA,GAAQ;AAAE,MAAA,GAAG,IAAA,CAAKA;AAAM,KAAA;AACjC2B,IAAAA,QAAAA,CAASzB,WAAAA,GAAc;SAAI,IAAA,CAAKA;;AAChC,IAAA,OAAOyB,QAAAA;AACT,EAAA;AACF;;;IAjCWI,UAAAA,EAAY;;;;;AAoChB,MAAMC,yBAAyBC,cAAAA,CAAAA;AAAAA,EAAAA;;;;EACpC,WAAA,CACEC,OAAAA,EACgBC,WAAAA,EAChBC,KAAAA,EACAhB,OAAAA,EACA;AACA,IAAA,KAAA,CAAMc,SAASE,KAAAA,GAAQ;AAACA,MAAAA;QAASlB,MAAAA,EAAW;MAC1CmB,OAAAA,EAAS,IAAA;MACTC,WAAAA,EAAa,KAAA;AACblB,MAAAA;KACF,CAAA,EAAA,KARgBe,WAAAA,GAAAA,WAAAA;AASlB,EAAA;AACF","file":"requirement.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool } from \"@/tools/base.js\";\nimport { MiddlewareType, RunContext } from \"@/context.js\";\nimport { Callback, Emitter } from \"@/emitter/emitter.js\";\nimport { FrameworkError, ValueError } from \"@/errors.js\";\nimport { toCamelCase } from \"remeda\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\n// Rule definition\nexport interface Rule {\n target: string;\n allowed: boolean;\n reason?: string;\n preventStop: boolean;\n forced: boolean;\n hidden: boolean;\n}\n\n// Base Requirement class\nexport abstract class Requirement {\n public name: string;\n public state: Record<string, any> = {};\n public enabled = true;\n public middlewares: MiddlewareType<typeof this>[] = [];\n\n protected _priority = 10;\n\n constructor(name?: string) {\n this.name = name || this.constructor.name;\n }\n\n get priority(): number {\n return this._priority;\n }\n\n set priority(value: number) {\n if (value <= 0) {\n throw new ValueError(\"Priority must be a positive integer.\");\n }\n this._priority = value;\n }\n\n @Cache({ enumerable: false })\n get emitter(): Emitter<RequirementCallbacks> {\n return Emitter.root.child({\n namespace: [\"requirement\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n run(state: RequirementAgentRunState) {\n return RunContext.enter(\n this,\n { signal: undefined, params: [state] as const },\n async (context) => {\n return await this._run(state, context);\n },\n );\n }\n\n abstract _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]>;\n\n async init(tools: AnyTool[], _: RunContext<any>): Promise<void> {\n await this.emitter.emit(\"init\", { tools });\n }\n\n async clone(): Promise<this> {\n const instance = Object.create(Object.getPrototypeOf(this));\n instance.name = this.name;\n instance.priority = this.priority;\n instance.enabled = this.enabled;\n instance.state = { ...this.state };\n instance.middlewares = [...this.middlewares];\n return instance;\n }\n}\n\n// Requirement error\nexport class RequirementError extends FrameworkError {\n constructor(\n message: string,\n public readonly requirement?: Requirement,\n cause?: Error,\n context?: Record<string, any>,\n ) {\n super(message, cause ? [cause] : undefined, {\n isFatal: true,\n isRetryable: false,\n context,\n });\n }\n}\n\nexport interface RequirementCallbacks {\n init: Callback<{ tools: AnyTool[] }>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/requirements/utils.ts"],"names":["extractTargetName","target","name","extractTargets","targets","Set","targetArray","Array","isArray","targetSeenIn","haystack","needle","values","isString","Tool","isConstructor","assertAllRulesFound","tools","found","tool","ValueError"],"mappings":";;;;;;;;;AAgBO,SAASA,kBAAkBC,MAAAA,EAAkB;AAClD,EAAA,IAAI,OAAOA,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAOA,MAAAA;AACT;AACA,EAAA,IAAI,OAAOA,WAAW,UAAA,EAAY;AAChC,IAAA,OAAOA,MAAAA,CAAOC,IAAAA;AAChB;AACA,EAAA,OAAOD,MAAAA,CAAOC,IAAAA;AAChB;AARgBF,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAaT,SAASG,eAAeC,OAAAA,EAAyB;AACtD,EAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,IAAA,2BAAWC,GAAAA,EAAAA;AACb;AAEA,EAAA,MAAMC,WAAAA,GAAcC,KAAAA,CAAMC,OAAAA,CAAQJ,OAAAA,IAAWA,OAAAA,GAAU;AAACA,IAAAA;;AACxD,EAAA,OAAO,IAAIC,IAAIC,WAAAA,CAAAA;AACjB;AAPgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAYT,SAASM,YAAAA,CACdR,QACAS,QAAAA,EAAsC;AAEtC,EAAA,IAAI,CAACT,MAAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AACT;AAEA,EAAA,IAAI,EAAES,oBAAoBL,GAAAA,CAAAA,EAAM;AAC9BK,IAAAA,QAAAA,uBAAeL,GAAAA,CAAI;AAACK,MAAAA;AAAS,KAAA,CAAA;AAC/B;AAEA,EAAA,KAAA,MAAWC,MAAAA,IAAUD,QAAAA,CAASE,MAAAA,EAAM,EAAI;AACtC,IAAA,IAAIC,eAAAA,CAASF,MAAAA,CAAAA,IAAWA,MAAAA,KAAWV,OAAOC,IAAAA,EAAM;AAC9C,MAAA,OAAOS,MAAAA;AACT;AACA,IAAA,IAAIA,MAAAA,YAAkBG,aAAAA,IAAQH,MAAAA,KAAWV,MAAAA,EAAQ;AAC/C,MAAA,OAAOU,MAAAA;AACT;AACA,IAAA,IAAII,2BAAAA,CAAcJ,MAAAA,CAAAA,IAAWV,MAAAA,YAAkBU,MAAAA,EAAQ;AACrD,MAAA,OAAOA,MAAAA;AACT;AACF;AAEA,EAAA,OAAO,IAAA;AACT;AAzBgBF,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AA8BT,SAASO,mBAAAA,CAAoBZ,SAA0Ba,KAAAA,EAAgB;AAC5E,EAAA,KAAA,MAAWhB,UAAUG,OAAAA,EAAS;AAC5B,IAAA,IAAIc,KAAAA,GAAQ,KAAA;AACZ,IAAA,KAAA,MAAWC,QAAQF,KAAAA,EAAO;AACxB,MAAA,IAAIR,YAAAA,CAAaU,IAAAA,EAAMlB,MAAAA,CAAAA,EAAS;AAC9BiB,QAAAA,KAAAA,GAAQ,IAAA;AACR,QAAA;AACF;AACF;AACA,IAAA,IAAI,CAACA,KAAAA,EAAO;AACV,MAAA,MAAM,IAAIE,qBAAAA,CACR,CAAA,MAAA,EAASnB,MAAAA,CAAAA,6EAAAA,CAAqF,CAAA;AAElG;AACF;AACF;AAfgBe,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"utils.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, AnyToolClass, Tool } from \"@/tools/base.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString } from \"remeda\";\nimport { isConstructor } from \"@/internals/helpers/prototype.js\";\n\nexport type TargetType = string | AnyTool | AnyToolClass;\nexport type MultiTargetType = TargetType | TargetType[];\n\n/**\n * Extract target name from various input types\n */\nexport function extractTargetName(target: TargetType): string {\n if (typeof target === \"string\") {\n return target;\n }\n if (typeof target === \"function\") {\n return target.name;\n }\n return target.name;\n}\n\n/**\n * Extract set of target names from various input types\n */\nexport function extractTargets(targets?: MultiTargetType): Set<TargetType> {\n if (!targets) {\n return new Set();\n }\n\n const targetArray = Array.isArray(targets) ? targets : [targets];\n return new Set(targetArray);\n}\n\n/**\n * Check if a tool matches any target in the set\n */\nexport function targetSeenIn(\n target: AnyTool | null | undefined,\n haystack: Set<TargetType> | TargetType,\n): TargetType | null {\n if (!target) {\n return null;\n }\n\n if (!(haystack instanceof Set)) {\n haystack = new Set([haystack]);\n }\n\n for (const needle of haystack.values()) {\n if (isString(needle) && needle === target.name) {\n return needle;\n }\n if (needle instanceof Tool && needle === target) {\n return needle;\n }\n if (isConstructor(needle) && target instanceof needle) {\n return needle;\n }\n }\n\n return null;\n}\n\n/**\n * Assert that all targets exist in the tools list\n */\nexport function assertAllRulesFound(targets: Set<TargetType>, tools: AnyTool[]): void {\n for (const target of targets) {\n let found = false;\n for (const tool of tools) {\n if (targetSeenIn(tool, target)) {\n found = true;\n break;\n }\n }\n if (!found) {\n throw new ValueError(\n `Tool '${target}' is specified as 'source', 'before', 'after' or 'force_after' but not found.`,\n );\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/utils.ts"],"names":["extractTargetName","target","name","extractTargets","targets","Set","targetArray","Array","isArray","targetSeenIn","haystack","needle","values","isString","Tool","isConstructor","assertAllRulesFound","tools","found","tool","ValueError"],"mappings":";;;;;;;;;AAgBO,SAASA,kBAAkBC,MAAAA,EAAkB;AAClD,EAAA,IAAI,OAAOA,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAOA,MAAAA;AACT,EAAA;AACA,EAAA,IAAI,OAAOA,WAAW,UAAA,EAAY;AAChC,IAAA,OAAOA,MAAAA,CAAOC,IAAAA;AAChB,EAAA;AACA,EAAA,OAAOD,MAAAA,CAAOC,IAAAA;AAChB;AARgBF,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAaT,SAASG,eAAeC,OAAAA,EAAyB;AACtD,EAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,IAAA,2BAAWC,GAAAA,EAAAA;AACb,EAAA;AAEA,EAAA,MAAMC,WAAAA,GAAcC,KAAAA,CAAMC,OAAAA,CAAQJ,OAAAA,IAAWA,OAAAA,GAAU;AAACA,IAAAA;;AACxD,EAAA,OAAO,IAAIC,IAAIC,WAAAA,CAAAA;AACjB;AAPgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAYT,SAASM,YAAAA,CACdR,QACAS,QAAAA,EAAsC;AAEtC,EAAA,IAAI,CAACT,MAAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AACT,EAAA;AAEA,EAAA,IAAI,EAAES,oBAAoBL,GAAAA,CAAAA,EAAM;AAC9BK,IAAAA,QAAAA,uBAAeL,GAAAA,CAAI;AAACK,MAAAA;AAAS,KAAA,CAAA;AAC/B,EAAA;AAEA,EAAA,KAAA,MAAWC,MAAAA,IAAUD,QAAAA,CAASE,MAAAA,EAAM,EAAI;AACtC,IAAA,IAAIC,eAAAA,CAASF,MAAAA,CAAAA,IAAWA,MAAAA,KAAWV,OAAOC,IAAAA,EAAM;AAC9C,MAAA,OAAOS,MAAAA;AACT,IAAA;AACA,IAAA,IAAIA,MAAAA,YAAkBG,aAAAA,IAAQH,MAAAA,KAAWV,MAAAA,EAAQ;AAC/C,MAAA,OAAOU,MAAAA;AACT,IAAA;AACA,IAAA,IAAII,2BAAAA,CAAcJ,MAAAA,CAAAA,IAAWV,MAAAA,YAAkBU,MAAAA,EAAQ;AACrD,MAAA,OAAOA,MAAAA;AACT,IAAA;AACF,EAAA;AAEA,EAAA,OAAO,IAAA;AACT;AAzBgBF,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AA8BT,SAASO,mBAAAA,CAAoBZ,SAA0Ba,KAAAA,EAAgB;AAC5E,EAAA,KAAA,MAAWhB,UAAUG,OAAAA,EAAS;AAC5B,IAAA,IAAIc,KAAAA,GAAQ,KAAA;AACZ,IAAA,KAAA,MAAWC,QAAQF,KAAAA,EAAO;AACxB,MAAA,IAAIR,YAAAA,CAAaU,IAAAA,EAAMlB,MAAAA,CAAAA,EAAS;AAC9BiB,QAAAA,KAAAA,GAAQ,IAAA;AACR,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA,IAAI,CAACA,KAAAA,EAAO;AACV,MAAA,MAAM,IAAIE,qBAAAA,CACR,CAAA,MAAA,EAASnB,MAAAA,CAAAA,6EAAAA,CAAqF,CAAA;AAElG,IAAA;AACF,EAAA;AACF;AAfgBe,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"utils.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, AnyToolClass, Tool } from \"@/tools/base.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString } from \"remeda\";\nimport { isConstructor } from \"@/internals/helpers/prototype.js\";\n\nexport type TargetType = string | AnyTool | AnyToolClass;\nexport type MultiTargetType = TargetType | TargetType[];\n\n/**\n * Extract target name from various input types\n */\nexport function extractTargetName(target: TargetType): string {\n if (typeof target === \"string\") {\n return target;\n }\n if (typeof target === \"function\") {\n return target.name;\n }\n return target.name;\n}\n\n/**\n * Extract set of target names from various input types\n */\nexport function extractTargets(targets?: MultiTargetType): Set<TargetType> {\n if (!targets) {\n return new Set();\n }\n\n const targetArray = Array.isArray(targets) ? targets : [targets];\n return new Set(targetArray);\n}\n\n/**\n * Check if a tool matches any target in the set\n */\nexport function targetSeenIn(\n target: AnyTool | null | undefined,\n haystack: Set<TargetType> | TargetType,\n): TargetType | null {\n if (!target) {\n return null;\n }\n\n if (!(haystack instanceof Set)) {\n haystack = new Set([haystack]);\n }\n\n for (const needle of haystack.values()) {\n if (isString(needle) && needle === target.name) {\n return needle;\n }\n if (needle instanceof Tool && needle === target) {\n return needle;\n }\n if (isConstructor(needle) && target instanceof needle) {\n return needle;\n }\n }\n\n return null;\n}\n\n/**\n * Assert that all targets exist in the tools list\n */\nexport function assertAllRulesFound(targets: Set<TargetType>, tools: AnyTool[]): void {\n for (const target of targets) {\n let found = false;\n for (const tool of tools) {\n if (targetSeenIn(tool, target)) {\n found = true;\n break;\n }\n }\n if (!found) {\n throw new ValueError(\n `Tool '${target}' is specified as 'source', 'before', 'after' or 'force_after' but not found.`,\n );\n }\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnyTool, AnyToolClass } from '../../../tools/base.cjs';
|
|
2
2
|
import 'ajv';
|
|
3
3
|
import '../../../context.cjs';
|
|
4
|
-
import '../../../emitter-
|
|
4
|
+
import '../../../emitter-D4OcelZ9.cjs';
|
|
5
5
|
import '../../../internals/types.cjs';
|
|
6
6
|
import '../../../internals/helpers/guards.cjs';
|
|
7
7
|
import '../../../internals/serializable.cjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnyTool, AnyToolClass } from '../../../tools/base.js';
|
|
2
2
|
import 'ajv';
|
|
3
3
|
import '../../../context.js';
|
|
4
|
-
import '../../../emitter-
|
|
4
|
+
import '../../../emitter-kHxkUxco.js';
|
|
5
5
|
import '../../../internals/types.js';
|
|
6
6
|
import '../../../internals/helpers/guards.js';
|
|
7
7
|
import '../../../internals/serializable.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/requirements/utils.ts"],"names":["extractTargetName","target","name","extractTargets","targets","Set","targetArray","Array","isArray","targetSeenIn","haystack","needle","values","isString","Tool","isConstructor","assertAllRulesFound","tools","found","tool","ValueError"],"mappings":";;;;;;;AAgBO,SAASA,kBAAkBC,MAAAA,EAAkB;AAClD,EAAA,IAAI,OAAOA,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAOA,MAAAA;AACT;AACA,EAAA,IAAI,OAAOA,WAAW,UAAA,EAAY;AAChC,IAAA,OAAOA,MAAAA,CAAOC,IAAAA;AAChB;AACA,EAAA,OAAOD,MAAAA,CAAOC,IAAAA;AAChB;AARgBF,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAaT,SAASG,eAAeC,OAAAA,EAAyB;AACtD,EAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,IAAA,2BAAWC,GAAAA,EAAAA;AACb;AAEA,EAAA,MAAMC,WAAAA,GAAcC,KAAAA,CAAMC,OAAAA,CAAQJ,OAAAA,IAAWA,OAAAA,GAAU;AAACA,IAAAA;;AACxD,EAAA,OAAO,IAAIC,IAAIC,WAAAA,CAAAA;AACjB;AAPgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAYT,SAASM,YAAAA,CACdR,QACAS,QAAAA,EAAsC;AAEtC,EAAA,IAAI,CAACT,MAAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AACT;AAEA,EAAA,IAAI,EAAES,oBAAoBL,GAAAA,CAAAA,EAAM;AAC9BK,IAAAA,QAAAA,uBAAeL,GAAAA,CAAI;AAACK,MAAAA;AAAS,KAAA,CAAA;AAC/B;AAEA,EAAA,KAAA,MAAWC,MAAAA,IAAUD,QAAAA,CAASE,MAAAA,EAAM,EAAI;AACtC,IAAA,IAAIC,QAAAA,CAASF,MAAAA,CAAAA,IAAWA,MAAAA,KAAWV,OAAOC,IAAAA,EAAM;AAC9C,MAAA,OAAOS,MAAAA;AACT;AACA,IAAA,IAAIA,MAAAA,YAAkBG,IAAAA,IAAQH,MAAAA,KAAWV,MAAAA,EAAQ;AAC/C,MAAA,OAAOU,MAAAA;AACT;AACA,IAAA,IAAII,aAAAA,CAAcJ,MAAAA,CAAAA,IAAWV,MAAAA,YAAkBU,MAAAA,EAAQ;AACrD,MAAA,OAAOA,MAAAA;AACT;AACF;AAEA,EAAA,OAAO,IAAA;AACT;AAzBgBF,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AA8BT,SAASO,mBAAAA,CAAoBZ,SAA0Ba,KAAAA,EAAgB;AAC5E,EAAA,KAAA,MAAWhB,UAAUG,OAAAA,EAAS;AAC5B,IAAA,IAAIc,KAAAA,GAAQ,KAAA;AACZ,IAAA,KAAA,MAAWC,QAAQF,KAAAA,EAAO;AACxB,MAAA,IAAIR,YAAAA,CAAaU,IAAAA,EAAMlB,MAAAA,CAAAA,EAAS;AAC9BiB,QAAAA,KAAAA,GAAQ,IAAA;AACR,QAAA;AACF;AACF;AACA,IAAA,IAAI,CAACA,KAAAA,EAAO;AACV,MAAA,MAAM,IAAIE,UAAAA,CACR,CAAA,MAAA,EAASnB,MAAAA,CAAAA,6EAAAA,CAAqF,CAAA;AAElG;AACF;AACF;AAfgBe,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, AnyToolClass, Tool } from \"@/tools/base.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString } from \"remeda\";\nimport { isConstructor } from \"@/internals/helpers/prototype.js\";\n\nexport type TargetType = string | AnyTool | AnyToolClass;\nexport type MultiTargetType = TargetType | TargetType[];\n\n/**\n * Extract target name from various input types\n */\nexport function extractTargetName(target: TargetType): string {\n if (typeof target === \"string\") {\n return target;\n }\n if (typeof target === \"function\") {\n return target.name;\n }\n return target.name;\n}\n\n/**\n * Extract set of target names from various input types\n */\nexport function extractTargets(targets?: MultiTargetType): Set<TargetType> {\n if (!targets) {\n return new Set();\n }\n\n const targetArray = Array.isArray(targets) ? targets : [targets];\n return new Set(targetArray);\n}\n\n/**\n * Check if a tool matches any target in the set\n */\nexport function targetSeenIn(\n target: AnyTool | null | undefined,\n haystack: Set<TargetType> | TargetType,\n): TargetType | null {\n if (!target) {\n return null;\n }\n\n if (!(haystack instanceof Set)) {\n haystack = new Set([haystack]);\n }\n\n for (const needle of haystack.values()) {\n if (isString(needle) && needle === target.name) {\n return needle;\n }\n if (needle instanceof Tool && needle === target) {\n return needle;\n }\n if (isConstructor(needle) && target instanceof needle) {\n return needle;\n }\n }\n\n return null;\n}\n\n/**\n * Assert that all targets exist in the tools list\n */\nexport function assertAllRulesFound(targets: Set<TargetType>, tools: AnyTool[]): void {\n for (const target of targets) {\n let found = false;\n for (const tool of tools) {\n if (targetSeenIn(tool, target)) {\n found = true;\n break;\n }\n }\n if (!found) {\n throw new ValueError(\n `Tool '${target}' is specified as 'source', 'before', 'after' or 'force_after' but not found.`,\n );\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/utils.ts"],"names":["extractTargetName","target","name","extractTargets","targets","Set","targetArray","Array","isArray","targetSeenIn","haystack","needle","values","isString","Tool","isConstructor","assertAllRulesFound","tools","found","tool","ValueError"],"mappings":";;;;;;;AAgBO,SAASA,kBAAkBC,MAAAA,EAAkB;AAClD,EAAA,IAAI,OAAOA,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAOA,MAAAA;AACT,EAAA;AACA,EAAA,IAAI,OAAOA,WAAW,UAAA,EAAY;AAChC,IAAA,OAAOA,MAAAA,CAAOC,IAAAA;AAChB,EAAA;AACA,EAAA,OAAOD,MAAAA,CAAOC,IAAAA;AAChB;AARgBF,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAaT,SAASG,eAAeC,OAAAA,EAAyB;AACtD,EAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,IAAA,2BAAWC,GAAAA,EAAAA;AACb,EAAA;AAEA,EAAA,MAAMC,WAAAA,GAAcC,KAAAA,CAAMC,OAAAA,CAAQJ,OAAAA,IAAWA,OAAAA,GAAU;AAACA,IAAAA;;AACxD,EAAA,OAAO,IAAIC,IAAIC,WAAAA,CAAAA;AACjB;AAPgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAYT,SAASM,YAAAA,CACdR,QACAS,QAAAA,EAAsC;AAEtC,EAAA,IAAI,CAACT,MAAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AACT,EAAA;AAEA,EAAA,IAAI,EAAES,oBAAoBL,GAAAA,CAAAA,EAAM;AAC9BK,IAAAA,QAAAA,uBAAeL,GAAAA,CAAI;AAACK,MAAAA;AAAS,KAAA,CAAA;AAC/B,EAAA;AAEA,EAAA,KAAA,MAAWC,MAAAA,IAAUD,QAAAA,CAASE,MAAAA,EAAM,EAAI;AACtC,IAAA,IAAIC,QAAAA,CAASF,MAAAA,CAAAA,IAAWA,MAAAA,KAAWV,OAAOC,IAAAA,EAAM;AAC9C,MAAA,OAAOS,MAAAA;AACT,IAAA;AACA,IAAA,IAAIA,MAAAA,YAAkBG,IAAAA,IAAQH,MAAAA,KAAWV,MAAAA,EAAQ;AAC/C,MAAA,OAAOU,MAAAA;AACT,IAAA;AACA,IAAA,IAAII,aAAAA,CAAcJ,MAAAA,CAAAA,IAAWV,MAAAA,YAAkBU,MAAAA,EAAQ;AACrD,MAAA,OAAOA,MAAAA;AACT,IAAA;AACF,EAAA;AAEA,EAAA,OAAO,IAAA;AACT;AAzBgBF,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AA8BT,SAASO,mBAAAA,CAAoBZ,SAA0Ba,KAAAA,EAAgB;AAC5E,EAAA,KAAA,MAAWhB,UAAUG,OAAAA,EAAS;AAC5B,IAAA,IAAIc,KAAAA,GAAQ,KAAA;AACZ,IAAA,KAAA,MAAWC,QAAQF,KAAAA,EAAO;AACxB,MAAA,IAAIR,YAAAA,CAAaU,IAAAA,EAAMlB,MAAAA,CAAAA,EAAS;AAC9BiB,QAAAA,KAAAA,GAAQ,IAAA;AACR,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA,IAAI,CAACA,KAAAA,EAAO;AACV,MAAA,MAAM,IAAIE,UAAAA,CACR,CAAA,MAAA,EAASnB,MAAAA,CAAAA,6EAAAA,CAAqF,CAAA;AAElG,IAAA;AACF,EAAA;AACF;AAfgBe,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, AnyToolClass, Tool } from \"@/tools/base.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString } from \"remeda\";\nimport { isConstructor } from \"@/internals/helpers/prototype.js\";\n\nexport type TargetType = string | AnyTool | AnyToolClass;\nexport type MultiTargetType = TargetType | TargetType[];\n\n/**\n * Extract target name from various input types\n */\nexport function extractTargetName(target: TargetType): string {\n if (typeof target === \"string\") {\n return target;\n }\n if (typeof target === \"function\") {\n return target.name;\n }\n return target.name;\n}\n\n/**\n * Extract set of target names from various input types\n */\nexport function extractTargets(targets?: MultiTargetType): Set<TargetType> {\n if (!targets) {\n return new Set();\n }\n\n const targetArray = Array.isArray(targets) ? targets : [targets];\n return new Set(targetArray);\n}\n\n/**\n * Check if a tool matches any target in the set\n */\nexport function targetSeenIn(\n target: AnyTool | null | undefined,\n haystack: Set<TargetType> | TargetType,\n): TargetType | null {\n if (!target) {\n return null;\n }\n\n if (!(haystack instanceof Set)) {\n haystack = new Set([haystack]);\n }\n\n for (const needle of haystack.values()) {\n if (isString(needle) && needle === target.name) {\n return needle;\n }\n if (needle instanceof Tool && needle === target) {\n return needle;\n }\n if (isConstructor(needle) && target instanceof needle) {\n return needle;\n }\n }\n\n return null;\n}\n\n/**\n * Assert that all targets exist in the tools list\n */\nexport function assertAllRulesFound(targets: Set<TargetType>, tools: AnyTool[]): void {\n for (const target of targets) {\n let found = false;\n for (const tool of tools) {\n if (targetSeenIn(tool, target)) {\n found = true;\n break;\n }\n }\n if (!found) {\n throw new ValueError(\n `Tool '${target}' is specified as 'source', 'before', 'after' or 'force_after' but not found.`,\n );\n }\n }\n}\n"]}
|
|
@@ -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":"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","file":"runner.cjs","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.cjs","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,13 +1,13 @@
|
|
|
1
1
|
import { RunContext, MiddlewareType, GetRunContext } from '../../context.cjs';
|
|
2
2
|
import * as zod from 'zod';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import {
|
|
4
|
+
import { B as BaseAgent, c as AgentMeta } from '../../base-s3ioVIE9.cjs';
|
|
5
5
|
import { AnyTool } from '../../tools/base.cjs';
|
|
6
6
|
import { BaseMemory } from '../../memory/base.cjs';
|
|
7
|
-
import { E as Emitter } from '../../emitter-
|
|
8
|
-
import {
|
|
7
|
+
import { E as Emitter } from '../../emitter-D4OcelZ9.cjs';
|
|
8
|
+
import { a as ChatModel, i as ChatModelOutput, f as ChatModelInput } from '../../chat-C20nYj46.cjs';
|
|
9
9
|
import { AssistantMessage, ToolMessage, Message } from '../../backend/message.cjs';
|
|
10
|
-
import { c as RequirementAgentExecutionConfig, d as RequirementAgentTemplates, R as RequirementAgentRunState, a as RequirementAgentRequest, e as RequirementAgentRunInput, f as RequirementAgentOutput, g as RequirementAgentRunOptions, h as RequirementAgentCallbacks } from '../../types-
|
|
10
|
+
import { c as RequirementAgentExecutionConfig, d as RequirementAgentTemplates, R as RequirementAgentRunState, a as RequirementAgentRequest, e as RequirementAgentRunInput, f as RequirementAgentOutput, g as RequirementAgentRunOptions, h as RequirementAgentCallbacks } from '../../types-BNsa3W7Z.cjs';
|
|
11
11
|
import { Requirement, Rule } from './requirements/requirement.cjs';
|
|
12
12
|
import { ToolCallPart } from 'ai';
|
|
13
13
|
import { RetryCounter } from '../../internals/helpers/counter.cjs';
|
|
@@ -112,4 +112,4 @@ declare class RequirementAgent extends BaseAgent<RequirementAgentRunInput, Requi
|
|
|
112
112
|
get memory(): BaseMemory;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
export {
|
|
115
|
+
export { RequirementAgent as R, RequirementAgentRunner, type RequirementAgentInput as a, type RequirementAgentTemplateFactory as b };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { RunContext, MiddlewareType, GetRunContext } from '../../context.js';
|
|
2
2
|
import * as zod from 'zod';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import {
|
|
4
|
+
import { B as BaseAgent, c as AgentMeta } from '../../base-BjzyQ8k6.js';
|
|
5
5
|
import { AnyTool } from '../../tools/base.js';
|
|
6
6
|
import { BaseMemory } from '../../memory/base.js';
|
|
7
|
-
import { E as Emitter } from '../../emitter-
|
|
8
|
-
import {
|
|
7
|
+
import { E as Emitter } from '../../emitter-kHxkUxco.js';
|
|
8
|
+
import { a as ChatModel, i as ChatModelOutput, f as ChatModelInput } from '../../chat-CfTNfR60.js';
|
|
9
9
|
import { AssistantMessage, ToolMessage, Message } from '../../backend/message.js';
|
|
10
|
-
import { c as RequirementAgentExecutionConfig, d as RequirementAgentTemplates, R as RequirementAgentRunState, a as RequirementAgentRequest, e as RequirementAgentRunInput, f as RequirementAgentOutput, g as RequirementAgentRunOptions, h as RequirementAgentCallbacks } from '../../types-
|
|
10
|
+
import { c as RequirementAgentExecutionConfig, d as RequirementAgentTemplates, R as RequirementAgentRunState, a as RequirementAgentRequest, e as RequirementAgentRunInput, f as RequirementAgentOutput, g as RequirementAgentRunOptions, h as RequirementAgentCallbacks } from '../../types-DYtzF6ya.js';
|
|
11
11
|
import { Requirement, Rule } from './requirements/requirement.js';
|
|
12
12
|
import { ToolCallPart } from 'ai';
|
|
13
13
|
import { RetryCounter } from '../../internals/helpers/counter.js';
|
|
@@ -112,4 +112,4 @@ declare class RequirementAgent extends BaseAgent<RequirementAgentRunInput, Requi
|
|
|
112
112
|
get memory(): BaseMemory;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
export {
|
|
115
|
+
export { RequirementAgent as R, RequirementAgentRunner, type RequirementAgentInput as a, type RequirementAgentTemplateFactory as b };
|
|
@@ -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":"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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"]}
|
|
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
|