beeai-framework 0.1.29 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/a2a/agents/agent.cjs.map +1 -1
- package/dist/adapters/a2a/agents/agent.d.cts +2 -2
- package/dist/adapters/a2a/agents/agent.d.ts +2 -2
- package/dist/adapters/a2a/agents/agent.js.map +1 -1
- package/dist/adapters/a2a/agents/events.d.cts +1 -1
- package/dist/adapters/a2a/agents/events.d.ts +1 -1
- package/dist/adapters/a2a/agents/types.d.cts +2 -2
- package/dist/adapters/a2a/agents/types.d.ts +2 -2
- package/dist/adapters/a2a/agents/utils.cjs +52 -11
- package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
- package/dist/adapters/a2a/agents/utils.js +52 -11
- package/dist/adapters/a2a/agents/utils.js.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
- package/dist/adapters/a2a/serve/server.cjs.map +1 -1
- package/dist/adapters/a2a/serve/server.d.cts +2 -2
- package/dist/adapters/a2a/serve/server.d.ts +2 -2
- package/dist/adapters/a2a/serve/server.js.map +1 -1
- package/dist/adapters/acp/agents/agent.cjs.map +1 -1
- package/dist/adapters/acp/agents/agent.d.cts +2 -2
- package/dist/adapters/acp/agents/agent.d.ts +2 -2
- package/dist/adapters/acp/agents/agent.js.map +1 -1
- package/dist/adapters/acp/agents/events.d.cts +1 -1
- package/dist/adapters/acp/agents/events.d.ts +1 -1
- package/dist/adapters/agentstack/agents/agent.cjs.map +1 -1
- package/dist/adapters/agentstack/agents/agent.d.cts +2 -2
- package/dist/adapters/agentstack/agents/agent.d.ts +2 -2
- package/dist/adapters/agentstack/agents/agent.js.map +1 -1
- package/dist/adapters/agentstack/agents/events.d.cts +1 -1
- package/dist/adapters/agentstack/agents/events.d.ts +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
- package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/chat.d.cts +2 -2
- package/dist/adapters/anthropic/backend/chat.d.ts +2 -2
- package/dist/adapters/anthropic/backend/chat.js.map +1 -1
- package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/client.js.map +1 -1
- package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
- package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
- package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.d.cts +3 -3
- package/dist/adapters/azure-openai/backend/chat.d.ts +3 -3
- package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
- package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/client.js.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
- package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
- package/dist/adapters/dummy/backend/chat.d.cts +2 -2
- package/dist/adapters/dummy/backend/chat.d.ts +2 -2
- package/dist/adapters/dummy/backend/chat.js.map +1 -1
- package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
- package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
- package/dist/adapters/dummy/backend/embedding.js.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.d.cts +3 -3
- package/dist/adapters/google-vertex/backend/chat.d.ts +3 -3
- package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
- package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/client.js.map +1 -1
- package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
- package/dist/adapters/groq/backend/chat.cjs.map +1 -1
- package/dist/adapters/groq/backend/chat.d.cts +3 -3
- package/dist/adapters/groq/backend/chat.d.ts +3 -3
- package/dist/adapters/groq/backend/chat.js.map +1 -1
- package/dist/adapters/groq/backend/client.cjs.map +1 -1
- package/dist/adapters/groq/backend/client.js.map +1 -1
- package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
- package/dist/adapters/groq/backend/embedding.d.cts +2 -2
- package/dist/adapters/groq/backend/embedding.d.ts +2 -2
- package/dist/adapters/groq/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/chat.cjs +6 -28
- package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
- package/dist/adapters/langchain/backend/chat.d.cts +6 -5
- package/dist/adapters/langchain/backend/chat.d.ts +6 -5
- package/dist/adapters/langchain/backend/chat.js +6 -28
- package/dist/adapters/langchain/backend/chat.js.map +1 -1
- package/dist/adapters/langchain/backend/embedding.cjs +3 -2
- package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
- package/dist/adapters/langchain/backend/embedding.d.cts +3 -3
- package/dist/adapters/langchain/backend/embedding.d.ts +3 -3
- package/dist/adapters/langchain/backend/embedding.js +3 -2
- package/dist/adapters/langchain/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/utils.cjs +328 -0
- package/dist/adapters/langchain/backend/utils.cjs.map +1 -0
- package/dist/adapters/langchain/backend/utils.d.cts +39 -0
- package/dist/adapters/langchain/backend/utils.d.ts +39 -0
- package/dist/adapters/langchain/backend/utils.js +324 -0
- package/dist/adapters/langchain/backend/utils.js.map +1 -0
- package/dist/adapters/langchain/tools.cjs.map +1 -1
- package/dist/adapters/langchain/tools.d.cts +2 -2
- package/dist/adapters/langchain/tools.d.ts +2 -2
- package/dist/adapters/langchain/tools.js.map +1 -1
- package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
- package/dist/adapters/mcp/serve/http_server.js.map +1 -1
- package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
- package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
- package/dist/adapters/mcp/serve/server.cjs.map +1 -1
- package/dist/adapters/mcp/serve/server.js.map +1 -1
- package/dist/adapters/minimax/backend/chat.cjs +25 -0
- package/dist/adapters/minimax/backend/chat.cjs.map +1 -0
- package/dist/adapters/minimax/backend/chat.d.cts +38 -0
- package/dist/adapters/minimax/backend/chat.d.ts +38 -0
- package/dist/adapters/minimax/backend/chat.js +23 -0
- package/dist/adapters/minimax/backend/chat.js.map +1 -0
- package/dist/adapters/minimax/backend/client.cjs +31 -0
- package/dist/adapters/minimax/backend/client.cjs.map +1 -0
- package/dist/adapters/minimax/backend/client.d.cts +17 -0
- package/dist/adapters/minimax/backend/client.d.ts +17 -0
- package/dist/adapters/minimax/backend/client.js +29 -0
- package/dist/adapters/minimax/backend/client.js.map +1 -0
- package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
- package/dist/adapters/ollama/backend/chat.d.cts +2 -2
- package/dist/adapters/ollama/backend/chat.d.ts +2 -2
- package/dist/adapters/ollama/backend/chat.js.map +1 -1
- package/dist/adapters/ollama/backend/client.cjs.map +1 -1
- package/dist/adapters/ollama/backend/client.js.map +1 -1
- package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
- package/dist/adapters/ollama/backend/embedding.d.cts +2 -2
- package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
- package/dist/adapters/ollama/backend/embedding.js.map +1 -1
- package/dist/adapters/openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/openai/backend/chat.d.cts +2 -2
- package/dist/adapters/openai/backend/chat.d.ts +2 -2
- package/dist/adapters/openai/backend/chat.js.map +1 -1
- package/dist/adapters/openai/backend/client.cjs.map +1 -1
- package/dist/adapters/openai/backend/client.js.map +1 -1
- package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/openai/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.d.cts +2 -2
- package/dist/adapters/vercel/backend/chat.d.ts +2 -2
- package/dist/adapters/vercel/backend/chat.js.map +1 -1
- package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
- package/dist/adapters/vercel/backend/embedding.d.cts +2 -2
- package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
- package/dist/adapters/vercel/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +2 -2
- package/dist/adapters/vercel/backend/utils.d.ts +2 -2
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
- package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
- package/dist/adapters/watsonx/backend/chat.js +1 -1
- package/dist/adapters/watsonx/backend/chat.js.map +1 -1
- package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/client.js.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
- package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
- package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
- package/dist/adapters/xai/backend/chat.cjs.map +1 -1
- package/dist/adapters/xai/backend/chat.d.cts +2 -2
- package/dist/adapters/xai/backend/chat.d.ts +2 -2
- package/dist/adapters/xai/backend/chat.js.map +1 -1
- package/dist/adapters/xai/backend/client.cjs.map +1 -1
- package/dist/adapters/xai/backend/client.js.map +1 -1
- package/dist/{agent-CZGWXO-X.d.ts → agent-s3uhvAba.d.ts} +4 -4
- package/dist/{agent-PRlGoawI.d.cts → agent-zfT__iq9.d.cts} +4 -4
- package/dist/agents/base.cjs.map +1 -1
- package/dist/agents/base.d.cts +2 -2
- package/dist/agents/base.d.ts +2 -2
- package/dist/agents/base.js.map +1 -1
- package/dist/agents/experimental/replan/agent.cjs.map +1 -1
- package/dist/agents/experimental/replan/agent.d.cts +3 -3
- package/dist/agents/experimental/replan/agent.d.ts +3 -3
- package/dist/agents/experimental/replan/agent.js.map +1 -1
- package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
- package/dist/agents/experimental/replan/prompts.d.cts +1 -1
- package/dist/agents/experimental/replan/prompts.d.ts +1 -1
- package/dist/agents/experimental/replan/prompts.js.map +1 -1
- package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/agent.d.cts +3 -3
- package/dist/agents/experimental/streamlit/agent.d.ts +3 -3
- package/dist/agents/experimental/streamlit/agent.js.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.cjs +2 -2
- package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.js +2 -2
- package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
- package/dist/agents/react/agent.cjs +6 -6
- package/dist/agents/react/agent.cjs.map +1 -1
- package/dist/agents/react/agent.d.cts +4 -4
- package/dist/agents/react/agent.d.ts +4 -4
- package/dist/agents/react/agent.js.map +1 -1
- package/dist/agents/react/prompts.cjs.map +1 -1
- package/dist/agents/react/prompts.js.map +1 -1
- package/dist/agents/react/runners/base.cjs.map +1 -1
- package/dist/agents/react/runners/base.d.cts +4 -4
- package/dist/agents/react/runners/base.d.ts +4 -4
- package/dist/agents/react/runners/base.js.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
- package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
- package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
- package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
- package/dist/agents/react/runners/default/runner.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.d.cts +4 -4
- package/dist/agents/react/runners/default/runner.d.ts +4 -4
- package/dist/agents/react/runners/default/runner.js.map +1 -1
- package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
- package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
- package/dist/agents/react/runners/granite/prompts.js.map +1 -1
- package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
- package/dist/agents/react/runners/granite/runner.d.cts +4 -4
- package/dist/agents/react/runners/granite/runner.d.ts +4 -4
- package/dist/agents/react/runners/granite/runner.js.map +1 -1
- package/dist/agents/react/types.d.cts +2 -2
- package/dist/agents/react/types.d.ts +2 -2
- package/dist/agents/requirement/agent.cjs.map +1 -1
- package/dist/agents/requirement/agent.d.cts +5 -5
- package/dist/agents/requirement/agent.d.ts +5 -5
- package/dist/agents/requirement/agent.js.map +1 -1
- package/dist/agents/requirement/prompts.d.cts +8 -8
- package/dist/agents/requirement/prompts.d.ts +8 -8
- package/dist/agents/requirement/requirements/conditional.cjs.map +1 -1
- package/dist/agents/requirement/requirements/conditional.d.cts +5 -5
- package/dist/agents/requirement/requirements/conditional.d.ts +5 -5
- package/dist/agents/requirement/requirements/conditional.js.map +1 -1
- package/dist/agents/requirement/requirements/requirement.cjs.map +1 -1
- package/dist/agents/requirement/requirements/requirement.d.cts +4 -4
- package/dist/agents/requirement/requirements/requirement.d.ts +4 -4
- package/dist/agents/requirement/requirements/requirement.js.map +1 -1
- package/dist/agents/requirement/requirements/utils.cjs.map +1 -1
- package/dist/agents/requirement/requirements/utils.d.cts +1 -1
- package/dist/agents/requirement/requirements/utils.d.ts +1 -1
- package/dist/agents/requirement/requirements/utils.js.map +1 -1
- package/dist/agents/requirement/runner.cjs.map +1 -1
- package/dist/agents/requirement/runner.d.cts +5 -5
- package/dist/agents/requirement/runner.d.ts +5 -5
- package/dist/agents/requirement/runner.js.map +1 -1
- package/dist/agents/requirement/types.d.cts +4 -4
- package/dist/agents/requirement/types.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.cjs.map +1 -1
- package/dist/agents/requirement/utils/llm.d.cts +4 -4
- package/dist/agents/requirement/utils/llm.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.js.map +1 -1
- package/dist/agents/requirement/utils/tool.cjs.map +1 -1
- package/dist/agents/requirement/utils/tool.d.cts +4 -4
- package/dist/agents/requirement/utils/tool.d.ts +4 -4
- package/dist/agents/requirement/utils/tool.js.map +1 -1
- package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -1
- package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -1
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.d.cts +4 -4
- package/dist/agents/toolCalling/agent.d.ts +4 -4
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/agents/toolCalling/prompts.cjs.map +1 -1
- package/dist/agents/toolCalling/prompts.js.map +1 -1
- package/dist/agents/toolCalling/types.d.cts +1 -1
- package/dist/agents/toolCalling/types.d.ts +1 -1
- package/dist/agents/types.d.cts +2 -2
- package/dist/agents/types.d.ts +2 -2
- package/dist/backend/backend.cjs.map +1 -1
- package/dist/backend/backend.d.cts +3 -3
- package/dist/backend/backend.d.ts +3 -3
- package/dist/backend/backend.js.map +1 -1
- package/dist/backend/chat.cjs.map +1 -1
- package/dist/backend/chat.d.cts +2 -2
- package/dist/backend/chat.d.ts +2 -2
- package/dist/backend/chat.js.map +1 -1
- package/dist/backend/client.cjs.map +1 -1
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/constants.cjs +7 -0
- package/dist/backend/constants.cjs.map +1 -1
- package/dist/backend/constants.d.cts +5 -0
- package/dist/backend/constants.d.ts +5 -0
- package/dist/backend/constants.js +7 -0
- package/dist/backend/constants.js.map +1 -1
- package/dist/backend/core.d.cts +2 -2
- package/dist/backend/core.d.ts +2 -2
- package/dist/backend/embedding.cjs.map +1 -1
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/embedding.js.map +1 -1
- package/dist/backend/errors.cjs.map +1 -1
- package/dist/backend/errors.d.cts +2 -2
- package/dist/backend/errors.d.ts +2 -2
- package/dist/backend/errors.js.map +1 -1
- package/dist/backend/message.cjs.map +1 -1
- package/dist/backend/message.js.map +1 -1
- package/dist/backend/utils.cjs.map +1 -1
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/backend/utils.js.map +1 -1
- package/dist/{base-CyFx7BRL.d.ts → base-BjzyQ8k6.d.ts} +2 -2
- package/dist/{base-XfWeXQ-S.d.cts → base-s3ioVIE9.d.cts} +2 -2
- package/dist/cache/decoratorCache.cjs.map +1 -1
- package/dist/cache/decoratorCache.js.map +1 -1
- package/dist/cache/fileCache.cjs.map +1 -1
- package/dist/cache/fileCache.js.map +1 -1
- package/dist/cache/nullCache.cjs.map +1 -1
- package/dist/cache/nullCache.js.map +1 -1
- package/dist/cache/slidingCache.cjs.map +1 -1
- package/dist/cache/slidingCache.js.map +1 -1
- package/dist/cache/unconstrainedCache.cjs.map +1 -1
- package/dist/cache/unconstrainedCache.js.map +1 -1
- package/dist/{chat-BFl85cqt.d.cts → chat-C20nYj46.d.cts} +3 -3
- package/dist/{chat-BRuyDeKR.d.ts → chat-CfTNfR60.d.ts} +3 -3
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.js.map +1 -1
- package/dist/emitter/emitter.cjs.map +1 -1
- package/dist/emitter/emitter.d.cts +1 -1
- package/dist/emitter/emitter.d.ts +1 -1
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/types.d.cts +1 -1
- package/dist/emitter/types.d.ts +1 -1
- package/dist/emitter/utils.cjs.map +1 -1
- package/dist/emitter/utils.js.map +1 -1
- package/dist/{emitter-jN55XZZq.d.cts → emitter-D4OcelZ9.d.cts} +1 -1
- package/dist/{emitter-36-9MnvA.d.ts → emitter-kHxkUxco.d.ts} +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/internals/env.cjs.map +1 -1
- package/dist/internals/env.js.map +1 -1
- package/dist/internals/fetcher.cjs.map +1 -1
- package/dist/internals/fetcher.d.cts +1 -1
- package/dist/internals/fetcher.d.ts +1 -1
- package/dist/internals/fetcher.js.map +1 -1
- package/dist/internals/helpers/array.cjs.map +1 -1
- package/dist/internals/helpers/array.js.map +1 -1
- package/dist/internals/helpers/cancellation.cjs.map +1 -1
- package/dist/internals/helpers/cancellation.js.map +1 -1
- package/dist/internals/helpers/counter.cjs.map +1 -1
- package/dist/internals/helpers/counter.js.map +1 -1
- package/dist/internals/helpers/general.cjs.map +1 -1
- package/dist/internals/helpers/general.js.map +1 -1
- package/dist/internals/helpers/hash.cjs.map +1 -1
- package/dist/internals/helpers/hash.js.map +1 -1
- package/dist/internals/helpers/map.cjs.map +1 -1
- package/dist/internals/helpers/map.js.map +1 -1
- package/dist/internals/helpers/math.cjs.map +1 -1
- package/dist/internals/helpers/math.js.map +1 -1
- package/dist/internals/helpers/object.cjs +7 -1
- package/dist/internals/helpers/object.cjs.map +1 -1
- package/dist/internals/helpers/object.js +7 -1
- package/dist/internals/helpers/object.js.map +1 -1
- package/dist/internals/helpers/paginate.cjs.map +1 -1
- package/dist/internals/helpers/paginate.js.map +1 -1
- package/dist/internals/helpers/promise.cjs.map +1 -1
- package/dist/internals/helpers/promise.js.map +1 -1
- package/dist/internals/helpers/prototype.cjs.map +1 -1
- package/dist/internals/helpers/prototype.js.map +1 -1
- package/dist/internals/helpers/retry.cjs.map +1 -1
- package/dist/internals/helpers/retry.js.map +1 -1
- package/dist/internals/helpers/retryable.cjs.map +1 -1
- package/dist/internals/helpers/retryable.js.map +1 -1
- package/dist/internals/helpers/schema.cjs.map +1 -1
- package/dist/internals/helpers/schema.d.cts +4 -4
- package/dist/internals/helpers/schema.d.ts +4 -4
- package/dist/internals/helpers/schema.js.map +1 -1
- package/dist/internals/helpers/stream.cjs.map +1 -1
- package/dist/internals/helpers/stream.js.map +1 -1
- package/dist/internals/helpers/string.cjs.map +1 -1
- package/dist/internals/helpers/string.js.map +1 -1
- package/dist/internals/helpers/weakRef.cjs.map +1 -1
- package/dist/internals/helpers/weakRef.js.map +1 -1
- package/dist/internals/serializable.cjs +3 -1
- package/dist/internals/serializable.cjs.map +1 -1
- package/dist/internals/serializable.d.cts +6 -0
- package/dist/internals/serializable.d.ts +6 -0
- package/dist/internals/serializable.js +3 -1
- package/dist/internals/serializable.js.map +1 -1
- package/dist/internals/types.cjs.map +1 -1
- package/dist/internals/types.js.map +1 -1
- package/dist/logger/logger.cjs.map +1 -1
- package/dist/logger/logger.d.cts +2 -2
- package/dist/logger/logger.d.ts +2 -2
- package/dist/logger/logger.js +2 -2
- package/dist/logger/logger.js.map +1 -1
- package/dist/logger/pretty.cjs.map +1 -1
- package/dist/logger/pretty.js.map +1 -1
- package/dist/memory/base.cjs.map +1 -1
- package/dist/memory/base.js.map +1 -1
- package/dist/memory/slidingMemory.cjs.map +1 -1
- package/dist/memory/slidingMemory.js.map +1 -1
- package/dist/memory/summarizeMemory.cjs.map +1 -1
- package/dist/memory/summarizeMemory.d.cts +2 -2
- package/dist/memory/summarizeMemory.d.ts +2 -2
- package/dist/memory/summarizeMemory.js.map +1 -1
- package/dist/memory/tokenMemory.cjs.map +1 -1
- package/dist/memory/tokenMemory.js.map +1 -1
- package/dist/memory/unconstrainedMemory.cjs.map +1 -1
- package/dist/memory/unconstrainedMemory.js.map +1 -1
- package/dist/middleware/streamToolCall.cjs.map +1 -1
- package/dist/middleware/streamToolCall.d.cts +2 -2
- package/dist/middleware/streamToolCall.d.ts +2 -2
- package/dist/middleware/streamToolCall.js.map +1 -1
- package/dist/middleware/trajectory.cjs.map +1 -1
- package/dist/middleware/trajectory.d.cts +2 -2
- package/dist/middleware/trajectory.d.ts +2 -2
- package/dist/middleware/trajectory.js.map +1 -1
- package/dist/parsers/errors.cjs.map +1 -1
- package/dist/parsers/errors.js.map +1 -1
- package/dist/parsers/field.cjs.map +1 -1
- package/dist/parsers/field.js.map +1 -1
- package/dist/parsers/linePrefix.cjs.map +1 -1
- package/dist/parsers/linePrefix.d.cts +1 -1
- package/dist/parsers/linePrefix.d.ts +1 -1
- package/dist/parsers/linePrefix.js.map +1 -1
- package/dist/serializer/error.cjs.map +1 -1
- package/dist/serializer/error.js.map +1 -1
- package/dist/serializer/serializer.cjs +16 -3
- package/dist/serializer/serializer.cjs.map +1 -1
- package/dist/serializer/serializer.d.cts +1 -1
- package/dist/serializer/serializer.d.ts +1 -1
- package/dist/serializer/serializer.js +16 -4
- package/dist/serializer/serializer.js.map +1 -1
- package/dist/serializer/utils.cjs.map +1 -1
- package/dist/serializer/utils.d.cts +1 -1
- package/dist/serializer/utils.d.ts +1 -1
- package/dist/serializer/utils.js.map +1 -1
- package/dist/{serializer-53t8gGQa.d.ts → serializer-BafOT48s.d.ts} +10 -4
- package/dist/{serializer-c51B2z6d.d.cts → serializer-CFDWYUco.d.cts} +10 -4
- package/dist/serve/server.cjs.map +1 -1
- package/dist/serve/server.js.map +1 -1
- package/dist/template.cjs.map +1 -1
- package/dist/template.js.map +1 -1
- package/dist/tools/arxiv.cjs.map +1 -1
- package/dist/tools/arxiv.d.cts +2 -2
- package/dist/tools/arxiv.d.ts +2 -2
- package/dist/tools/arxiv.js.map +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.d.cts +1 -1
- package/dist/tools/base.d.ts +1 -1
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/calculator.cjs.map +1 -1
- package/dist/tools/calculator.d.cts +3 -3
- package/dist/tools/calculator.d.ts +3 -3
- package/dist/tools/calculator.js.map +1 -1
- package/dist/tools/custom.cjs.map +1 -1
- package/dist/tools/custom.d.cts +3 -3
- package/dist/tools/custom.d.ts +3 -3
- package/dist/tools/custom.js.map +1 -1
- package/dist/tools/database/elasticsearch.cjs.map +1 -1
- package/dist/tools/database/elasticsearch.d.cts +3 -3
- package/dist/tools/database/elasticsearch.d.ts +3 -3
- package/dist/tools/database/elasticsearch.js.map +1 -1
- package/dist/tools/database/metadata.cjs.map +1 -1
- package/dist/tools/database/metadata.js.map +1 -1
- package/dist/tools/database/milvus.cjs.map +1 -1
- package/dist/tools/database/milvus.d.cts +5 -5
- package/dist/tools/database/milvus.d.ts +5 -5
- package/dist/tools/database/milvus.js.map +1 -1
- package/dist/tools/database/qdrant.cjs.map +1 -1
- package/dist/tools/database/qdrant.d.cts +2 -2
- package/dist/tools/database/qdrant.d.ts +2 -2
- package/dist/tools/database/qdrant.js.map +1 -1
- package/dist/tools/database/sql.cjs.map +1 -1
- package/dist/tools/database/sql.d.cts +2 -2
- package/dist/tools/database/sql.d.ts +2 -2
- package/dist/tools/database/sql.js.map +1 -1
- package/dist/tools/handoff.cjs.map +1 -1
- package/dist/tools/handoff.d.cts +2 -2
- package/dist/tools/handoff.d.ts +2 -2
- package/dist/tools/handoff.js.map +1 -1
- package/dist/tools/llm.cjs +1 -1
- package/dist/tools/llm.cjs.map +1 -1
- package/dist/tools/llm.d.cts +3 -3
- package/dist/tools/llm.d.ts +3 -3
- package/dist/tools/llm.js +1 -1
- package/dist/tools/llm.js.map +1 -1
- package/dist/tools/mcp.cjs.map +1 -1
- package/dist/tools/mcp.d.cts +2 -2
- package/dist/tools/mcp.d.ts +2 -2
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/openapi.cjs.map +1 -1
- package/dist/tools/openapi.d.cts +2 -2
- package/dist/tools/openapi.d.ts +2 -2
- package/dist/tools/openapi.js.map +1 -1
- package/dist/tools/python/output.cjs.map +1 -1
- package/dist/tools/python/output.d.cts +1 -1
- package/dist/tools/python/output.d.ts +1 -1
- package/dist/tools/python/output.js.map +1 -1
- package/dist/tools/python/python.cjs +5 -2
- package/dist/tools/python/python.cjs.map +1 -1
- package/dist/tools/python/python.d.cts +3 -3
- package/dist/tools/python/python.d.ts +3 -3
- package/dist/tools/python/python.js +5 -2
- package/dist/tools/python/python.js.map +1 -1
- package/dist/tools/python/storage.cjs.map +1 -1
- package/dist/tools/python/storage.js.map +1 -1
- package/dist/tools/search/base.cjs.map +1 -1
- package/dist/tools/search/base.d.cts +2 -2
- package/dist/tools/search/base.d.ts +2 -2
- package/dist/tools/search/base.js.map +1 -1
- package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.cts +2 -2
- package/dist/tools/search/duckDuckGoSearch.d.ts +2 -2
- package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
- package/dist/tools/search/googleSearch.cjs.map +1 -1
- package/dist/tools/search/googleSearch.d.cts +2 -2
- package/dist/tools/search/googleSearch.d.ts +2 -2
- package/dist/tools/search/googleSearch.js.map +1 -1
- package/dist/tools/search/searXNGSearch.cjs.map +1 -1
- package/dist/tools/search/searXNGSearch.d.cts +2 -2
- package/dist/tools/search/searXNGSearch.d.ts +2 -2
- package/dist/tools/search/searXNGSearch.js.map +1 -1
- package/dist/tools/search/wikipedia.cjs.map +1 -1
- package/dist/tools/search/wikipedia.d.cts +3 -3
- package/dist/tools/search/wikipedia.d.ts +3 -3
- package/dist/tools/search/wikipedia.js.map +1 -1
- package/dist/tools/similarity.cjs.map +1 -1
- package/dist/tools/similarity.d.cts +2 -2
- package/dist/tools/similarity.d.ts +2 -2
- package/dist/tools/similarity.js.map +1 -1
- package/dist/tools/think.cjs.map +1 -1
- package/dist/tools/think.d.cts +2 -2
- package/dist/tools/think.d.ts +2 -2
- package/dist/tools/think.js.map +1 -1
- package/dist/tools/weather/openMeteo.cjs.map +1 -1
- package/dist/tools/weather/openMeteo.d.cts +2 -2
- package/dist/tools/weather/openMeteo.d.ts +2 -2
- package/dist/tools/weather/openMeteo.js.map +1 -1
- package/dist/tools/web/webCrawler.cjs.map +1 -1
- package/dist/tools/web/webCrawler.d.cts +2 -2
- package/dist/tools/web/webCrawler.d.ts +2 -2
- package/dist/tools/web/webCrawler.js.map +1 -1
- package/dist/{types-CkEtV8R9.d.cts → types-BNsa3W7Z.d.cts} +4 -4
- package/dist/{types-BQ-3LdkE.d.ts → types-DYtzF6ya.d.ts} +4 -4
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/workflows/agent.cjs.map +1 -1
- package/dist/workflows/agent.d.cts +40 -40
- package/dist/workflows/agent.d.ts +40 -40
- package/dist/workflows/agent.js.map +1 -1
- package/dist/workflows/workflow.cjs.map +1 -1
- package/dist/workflows/workflow.d.cts +1 -1
- package/dist/workflows/workflow.d.ts +1 -1
- package/dist/workflows/workflow.js.map +1 -1
- package/package.json +33 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/requirements/conditional.ts"],"names":["ConditionalRequirement","Requirement","source","sourceTool","before","after","forceAfterSet","minInvocations","maxInvocations","forceAtStepValue","onlySuccessInvocations","consecutiveAllowedValue","customChecks","forcePreventStop","reason","target","options","name","extractTargetName","enabled","priority","undefined","extractTargets","onlyBefore","onlyAfter","forceAfter","Infinity","forceAtStep","consecutiveAllowed","checkInvariant","ValueError","sourceName","has","beforeAfterIntersection","Set","filter","x","size","Array","from","join","beforeForceAfterIntersection","init","tools","ctx","allTargets","assertAllRulesFound","tool","targetSeenIn","reset","clear","_run","state","_","RequirementError","steps","step","error","lastStepTool","at","invocations","length","resolve","allowed","currentStep","forced","Boolean","hidden","preventStop","stepsAsToolCalls","map","isTruthy","afterToolsRemaining","stepTool","matcher","delete","check","clone","instance"],"mappings":"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","file":"conditional.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Requirement, RequirementError, Rule } from \"./requirement.js\";\nimport {\n TargetType,\n MultiTargetType,\n extractTargets,\n extractTargetName,\n targetSeenIn,\n assertAllRulesFound,\n} from \"./utils.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { isTruthy } from \"remeda\";\n\nexport interface ConditionalRequirementOptions {\n name?: string;\n forceAtStep?: number;\n onlyBefore?: MultiTargetType;\n onlyAfter?: MultiTargetType;\n forceAfter?: MultiTargetType;\n forcePreventStop?: boolean;\n minInvocations?: number;\n maxInvocations?: number;\n onlySuccessInvocations?: boolean;\n consecutiveAllowed?: boolean;\n priority?: number;\n customChecks?: ((state: RequirementAgentRunState) => boolean)[];\n enabled?: boolean;\n reason?: string;\n}\n\nexport class ConditionalRequirement extends Requirement {\n protected source: TargetType;\n protected sourceTool?: AnyTool;\n protected before: Set<TargetType>;\n protected after: Set<TargetType>;\n protected forceAfterSet: Set<TargetType>;\n protected minInvocations: number;\n protected maxInvocations: number;\n protected forceAtStepValue?: number;\n protected onlySuccessInvocations: boolean;\n protected consecutiveAllowedValue: boolean;\n protected customChecks: ((state: RequirementAgentRunState) => boolean)[];\n protected forcePreventStop: boolean;\n protected reason?: string;\n\n constructor(target: TargetType, options: ConditionalRequirementOptions = {}) {\n super(options.name || `Condition${extractTargetName(target)}`);\n\n this.source = target;\n this.enabled = options.enabled ?? true;\n\n if (options.priority !== undefined) {\n this.priority = options.priority;\n }\n\n this.before = extractTargets(options.onlyBefore);\n this.after = extractTargets(options.onlyAfter);\n this.forceAfterSet = extractTargets(options.forceAfter);\n this.minInvocations = options.minInvocations ?? 0;\n this.maxInvocations = options.maxInvocations ?? Infinity;\n this.forceAtStepValue = options.forceAtStep;\n this.onlySuccessInvocations = options.onlySuccessInvocations ?? true;\n this.consecutiveAllowedValue = options.consecutiveAllowed ?? true;\n this.customChecks = options.customChecks ?? [];\n this.forcePreventStop = options.forcePreventStop ?? true;\n this.reason = options.reason;\n\n this.checkInvariant();\n }\n\n protected checkInvariant(): void {\n if (this.minInvocations < 0) {\n throw new ValueError(\"The 'minInvocations' argument must be non negative!\");\n }\n\n if (this.maxInvocations < 0) {\n throw new ValueError(\"The 'maxInvocations' argument must be non negative!\");\n }\n\n if (this.minInvocations > this.maxInvocations) {\n throw new ValueError(\n \"The 'minInvocations' argument must be less than or equal to 'maxInvocations'!\",\n );\n }\n\n const sourceName = extractTargetName(this.source);\n if (this.before.has(this.source)) {\n throw new ValueError(`Referencing self in 'before' is not allowed (${sourceName})!`);\n }\n\n if (this.forceAfterSet.has(this.source)) {\n throw new ValueError(`Referencing self in 'forceAfter' is not allowed (${sourceName})!`);\n }\n\n const beforeAfterIntersection = new Set([...this.before].filter((x) => this.after.has(x)));\n if (beforeAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'after' at the same time: ${Array.from(beforeAfterIntersection).join(\", \")}!`,\n );\n }\n\n const beforeForceAfterIntersection = new Set(\n [...this.before].filter((x) => this.forceAfterSet.has(x)),\n );\n if (beforeForceAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'forceAfter' at the same time: ${Array.from(beforeForceAfterIntersection).join(\", \")}!`,\n );\n }\n\n if (this.forceAtStepValue !== undefined && this.forceAtStepValue < 1) {\n throw new ValueError(\"The 'forceAtStep' argument must be >= 1!\");\n }\n }\n\n async init(tools: AnyTool[], ctx: RunContext<any>): Promise<void> {\n await super.init(tools, ctx);\n\n const allTargets = new Set([...this.before, ...this.after, ...this.forceAfterSet, this.source]);\n assertAllRulesFound(allTargets, tools);\n\n for (const tool of tools) {\n if (targetSeenIn(tool, this.source)) {\n if (this.sourceTool && this.sourceTool !== tool) {\n throw new ValueError(\n `More than one occurrence of ${extractTargetName(this.source)} has been found!`,\n );\n }\n this.sourceTool = tool;\n }\n }\n\n if (!this.sourceTool) {\n throw new ValueError(`Source tool ${extractTargetName(this.source)} was not found!`);\n }\n\n if (targetSeenIn(this.sourceTool, this.before)) {\n throw new ValueError(`Referencing self in 'before' is not allowed: ${this.sourceTool.name}!`);\n }\n\n if (this.consecutiveAllowedValue && targetSeenIn(this.sourceTool, this.forceAfterSet)) {\n throw new ValueError(\n `Referencing self in 'forceAfter' is not allowed: ${this.sourceTool.name}. ` +\n `It would prevent an infinite loop. Consider setting 'consecutiveAllowed' to false.`,\n );\n }\n }\n\n reset(): this {\n this.before.clear();\n this.after.clear();\n this.forceAfterSet.clear();\n return this;\n }\n\n async _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]> {\n const sourceTool = this.sourceTool;\n if (!sourceTool) {\n throw new RequirementError(\"Source was not found!\", this);\n }\n\n // Get steps from state (assuming state has steps property)\n const steps = this.onlySuccessInvocations\n ? state.steps.filter((step) => !step.error)\n : state.steps;\n\n const lastStepTool = steps.at(-1)?.tool;\n\n const invocations = steps.filter((step) => step.tool === sourceTool).length;\n\n const resolve = (allowed: boolean): Rule[] => {\n const currentStep = steps.length + 1;\n if (!allowed && this.forceAtStepValue === currentStep) {\n throw new RequirementError(\n `Tool '${sourceTool.name}' cannot be executed at step ${this.forceAtStepValue} ` +\n `because it has not met all requirements.`,\n this,\n );\n }\n\n const forced = allowed\n ? Boolean(\n targetSeenIn(lastStepTool, this.forceAfterSet) || this.forceAtStepValue === currentStep,\n )\n : false;\n\n return [\n {\n target: sourceTool.name,\n allowed,\n forced,\n hidden: false,\n preventStop: this.minInvocations > invocations || (forced && this.forcePreventStop),\n reason: !allowed ? this.reason : undefined,\n },\n ];\n };\n\n // Check consecutive constraint\n if (!this.consecutiveAllowedValue && sourceTool === lastStepTool) {\n return resolve(false);\n }\n\n // Check max invocations\n if (invocations >= this.maxInvocations) {\n return resolve(false);\n }\n\n // Check after/before constraints\n if (this.after.size > 0) {\n const stepsAsToolCalls = steps.map((step) => step.tool).filter(isTruthy);\n const afterToolsRemaining = new Set(this.after);\n\n for (const stepTool of stepsAsToolCalls) {\n if (targetSeenIn(stepTool, this.forceAfterSet)) {\n return resolve(false);\n }\n\n const matcher = targetSeenIn(stepTool as any, this.after);\n if (matcher) {\n afterToolsRemaining.delete(matcher);\n }\n }\n\n if (afterToolsRemaining.size > 0) {\n return resolve(false);\n }\n }\n\n // Check custom checks\n for (const check of this.customChecks) {\n if (!check(state)) {\n return resolve(false);\n }\n }\n\n return resolve(true);\n }\n\n async clone(): Promise<this> {\n const instance = await super.clone();\n instance.before = new Set(this.before);\n instance.after = new Set(this.after);\n instance.forceAfterSet = new Set(this.forceAfterSet);\n instance.minInvocations = this.minInvocations;\n instance.maxInvocations = this.maxInvocations;\n instance.customChecks = [...this.customChecks];\n instance.onlySuccessInvocations = this.onlySuccessInvocations;\n instance.forceAtStepValue = this.forceAtStepValue;\n instance.consecutiveAllowedValue = this.consecutiveAllowedValue;\n instance.source = this.source;\n instance.sourceTool = this.sourceTool;\n instance.forcePreventStop = this.forcePreventStop;\n instance.reason = this.reason;\n return instance;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/conditional.ts"],"names":["ConditionalRequirement","Requirement","source","sourceTool","before","after","forceAfterSet","minInvocations","maxInvocations","forceAtStepValue","onlySuccessInvocations","consecutiveAllowedValue","customChecks","forcePreventStop","reason","target","options","name","extractTargetName","enabled","priority","undefined","extractTargets","onlyBefore","onlyAfter","forceAfter","Infinity","forceAtStep","consecutiveAllowed","checkInvariant","ValueError","sourceName","has","beforeAfterIntersection","Set","filter","x","size","Array","from","join","beforeForceAfterIntersection","init","tools","ctx","allTargets","assertAllRulesFound","tool","targetSeenIn","reset","clear","_run","state","_","RequirementError","steps","step","error","lastStepTool","at","invocations","length","resolve","allowed","currentStep","forced","Boolean","hidden","preventStop","stepsAsToolCalls","map","isTruthy","afterToolsRemaining","stepTool","matcher","delete","check","clone","instance"],"mappings":"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","file":"conditional.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Requirement, RequirementError, Rule } from \"./requirement.js\";\nimport {\n TargetType,\n MultiTargetType,\n extractTargets,\n extractTargetName,\n targetSeenIn,\n assertAllRulesFound,\n} from \"./utils.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { isTruthy } from \"remeda\";\n\nexport interface ConditionalRequirementOptions {\n name?: string;\n forceAtStep?: number;\n onlyBefore?: MultiTargetType;\n onlyAfter?: MultiTargetType;\n forceAfter?: MultiTargetType;\n forcePreventStop?: boolean;\n minInvocations?: number;\n maxInvocations?: number;\n onlySuccessInvocations?: boolean;\n consecutiveAllowed?: boolean;\n priority?: number;\n customChecks?: ((state: RequirementAgentRunState) => boolean)[];\n enabled?: boolean;\n reason?: string;\n}\n\nexport class ConditionalRequirement extends Requirement {\n protected source: TargetType;\n protected sourceTool?: AnyTool;\n protected before: Set<TargetType>;\n protected after: Set<TargetType>;\n protected forceAfterSet: Set<TargetType>;\n protected minInvocations: number;\n protected maxInvocations: number;\n protected forceAtStepValue?: number;\n protected onlySuccessInvocations: boolean;\n protected consecutiveAllowedValue: boolean;\n protected customChecks: ((state: RequirementAgentRunState) => boolean)[];\n protected forcePreventStop: boolean;\n protected reason?: string;\n\n constructor(target: TargetType, options: ConditionalRequirementOptions = {}) {\n super(options.name || `Condition${extractTargetName(target)}`);\n\n this.source = target;\n this.enabled = options.enabled ?? true;\n\n if (options.priority !== undefined) {\n this.priority = options.priority;\n }\n\n this.before = extractTargets(options.onlyBefore);\n this.after = extractTargets(options.onlyAfter);\n this.forceAfterSet = extractTargets(options.forceAfter);\n this.minInvocations = options.minInvocations ?? 0;\n this.maxInvocations = options.maxInvocations ?? Infinity;\n this.forceAtStepValue = options.forceAtStep;\n this.onlySuccessInvocations = options.onlySuccessInvocations ?? true;\n this.consecutiveAllowedValue = options.consecutiveAllowed ?? true;\n this.customChecks = options.customChecks ?? [];\n this.forcePreventStop = options.forcePreventStop ?? true;\n this.reason = options.reason;\n\n this.checkInvariant();\n }\n\n protected checkInvariant(): void {\n if (this.minInvocations < 0) {\n throw new ValueError(\"The 'minInvocations' argument must be non negative!\");\n }\n\n if (this.maxInvocations < 0) {\n throw new ValueError(\"The 'maxInvocations' argument must be non negative!\");\n }\n\n if (this.minInvocations > this.maxInvocations) {\n throw new ValueError(\n \"The 'minInvocations' argument must be less than or equal to 'maxInvocations'!\",\n );\n }\n\n const sourceName = extractTargetName(this.source);\n if (this.before.has(this.source)) {\n throw new ValueError(`Referencing self in 'before' is not allowed (${sourceName})!`);\n }\n\n if (this.forceAfterSet.has(this.source)) {\n throw new ValueError(`Referencing self in 'forceAfter' is not allowed (${sourceName})!`);\n }\n\n const beforeAfterIntersection = new Set([...this.before].filter((x) => this.after.has(x)));\n if (beforeAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'after' at the same time: ${Array.from(beforeAfterIntersection).join(\", \")}!`,\n );\n }\n\n const beforeForceAfterIntersection = new Set(\n [...this.before].filter((x) => this.forceAfterSet.has(x)),\n );\n if (beforeForceAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'forceAfter' at the same time: ${Array.from(beforeForceAfterIntersection).join(\", \")}!`,\n );\n }\n\n if (this.forceAtStepValue !== undefined && this.forceAtStepValue < 1) {\n throw new ValueError(\"The 'forceAtStep' argument must be >= 1!\");\n }\n }\n\n async init(tools: AnyTool[], ctx: RunContext<any>): Promise<void> {\n await super.init(tools, ctx);\n\n const allTargets = new Set([...this.before, ...this.after, ...this.forceAfterSet, this.source]);\n assertAllRulesFound(allTargets, tools);\n\n for (const tool of tools) {\n if (targetSeenIn(tool, this.source)) {\n if (this.sourceTool && this.sourceTool !== tool) {\n throw new ValueError(\n `More than one occurrence of ${extractTargetName(this.source)} has been found!`,\n );\n }\n this.sourceTool = tool;\n }\n }\n\n if (!this.sourceTool) {\n throw new ValueError(`Source tool ${extractTargetName(this.source)} was not found!`);\n }\n\n if (targetSeenIn(this.sourceTool, this.before)) {\n throw new ValueError(`Referencing self in 'before' is not allowed: ${this.sourceTool.name}!`);\n }\n\n if (this.consecutiveAllowedValue && targetSeenIn(this.sourceTool, this.forceAfterSet)) {\n throw new ValueError(\n `Referencing self in 'forceAfter' is not allowed: ${this.sourceTool.name}. ` +\n `It would prevent an infinite loop. Consider setting 'consecutiveAllowed' to false.`,\n );\n }\n }\n\n reset(): this {\n this.before.clear();\n this.after.clear();\n this.forceAfterSet.clear();\n return this;\n }\n\n async _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]> {\n const sourceTool = this.sourceTool;\n if (!sourceTool) {\n throw new RequirementError(\"Source was not found!\", this);\n }\n\n // Get steps from state (assuming state has steps property)\n const steps = this.onlySuccessInvocations\n ? state.steps.filter((step) => !step.error)\n : state.steps;\n\n const lastStepTool = steps.at(-1)?.tool;\n\n const invocations = steps.filter((step) => step.tool === sourceTool).length;\n\n const resolve = (allowed: boolean): Rule[] => {\n const currentStep = steps.length + 1;\n if (!allowed && this.forceAtStepValue === currentStep) {\n throw new RequirementError(\n `Tool '${sourceTool.name}' cannot be executed at step ${this.forceAtStepValue} ` +\n `because it has not met all requirements.`,\n this,\n );\n }\n\n const forced = allowed\n ? Boolean(\n targetSeenIn(lastStepTool, this.forceAfterSet) || this.forceAtStepValue === currentStep,\n )\n : false;\n\n return [\n {\n target: sourceTool.name,\n allowed,\n forced,\n hidden: false,\n preventStop: this.minInvocations > invocations || (forced && this.forcePreventStop),\n reason: !allowed ? this.reason : undefined,\n },\n ];\n };\n\n // Check consecutive constraint\n if (!this.consecutiveAllowedValue && sourceTool === lastStepTool) {\n return resolve(false);\n }\n\n // Check max invocations\n if (invocations >= this.maxInvocations) {\n return resolve(false);\n }\n\n // Check after/before constraints\n if (this.after.size > 0) {\n const stepsAsToolCalls = steps.map((step) => step.tool).filter(isTruthy);\n const afterToolsRemaining = new Set(this.after);\n\n for (const stepTool of stepsAsToolCalls) {\n if (targetSeenIn(stepTool, this.forceAfterSet)) {\n return resolve(false);\n }\n\n const matcher = targetSeenIn(stepTool as any, this.after);\n if (matcher) {\n afterToolsRemaining.delete(matcher);\n }\n }\n\n if (afterToolsRemaining.size > 0) {\n return resolve(false);\n }\n }\n\n // Check custom checks\n for (const check of this.customChecks) {\n if (!check(state)) {\n return resolve(false);\n }\n }\n\n return resolve(true);\n }\n\n async clone(): Promise<this> {\n const instance = await super.clone();\n instance.before = new Set(this.before);\n instance.after = new Set(this.after);\n instance.forceAfterSet = new Set(this.forceAfterSet);\n instance.minInvocations = this.minInvocations;\n instance.maxInvocations = this.maxInvocations;\n instance.customChecks = [...this.customChecks];\n instance.onlySuccessInvocations = this.onlySuccessInvocations;\n instance.forceAtStepValue = this.forceAtStepValue;\n instance.consecutiveAllowedValue = this.consecutiveAllowedValue;\n instance.source = this.source;\n instance.sourceTool = this.sourceTool;\n instance.forcePreventStop = this.forcePreventStop;\n instance.reason = this.reason;\n return instance;\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Requirement, Rule } from './requirement.cjs';
|
|
2
|
-
import {
|
|
2
|
+
import { TargetType, MultiTargetType } from './utils.cjs';
|
|
3
3
|
import { AnyTool } from '../../../tools/base.cjs';
|
|
4
4
|
import { RunContext } from '../../../context.cjs';
|
|
5
|
-
import { R as RequirementAgentRunState } from '../../../types-
|
|
6
|
-
import '../../../emitter-
|
|
5
|
+
import { R as RequirementAgentRunState } from '../../../types-BNsa3W7Z.cjs';
|
|
6
|
+
import '../../../emitter-D4OcelZ9.cjs';
|
|
7
7
|
import '../../../internals/types.cjs';
|
|
8
8
|
import '../../../internals/helpers/guards.cjs';
|
|
9
9
|
import '../../../internals/serializable.cjs';
|
|
@@ -19,11 +19,11 @@ import '../../../memory/base.cjs';
|
|
|
19
19
|
import '../../../backend/message.cjs';
|
|
20
20
|
import 'ai';
|
|
21
21
|
import '../../../template.cjs';
|
|
22
|
-
import '../../../chat-
|
|
22
|
+
import '../../../chat-C20nYj46.cjs';
|
|
23
23
|
import '../../../backend/constants.cjs';
|
|
24
24
|
import '../../../logger/logger.cjs';
|
|
25
25
|
import 'pino';
|
|
26
|
-
import '../../../base-
|
|
26
|
+
import '../../../base-s3ioVIE9.cjs';
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Requirement, Rule } from './requirement.js';
|
|
2
|
-
import {
|
|
2
|
+
import { TargetType, MultiTargetType } from './utils.js';
|
|
3
3
|
import { AnyTool } from '../../../tools/base.js';
|
|
4
4
|
import { RunContext } from '../../../context.js';
|
|
5
|
-
import { R as RequirementAgentRunState } from '../../../types-
|
|
6
|
-
import '../../../emitter-
|
|
5
|
+
import { R as RequirementAgentRunState } from '../../../types-DYtzF6ya.js';
|
|
6
|
+
import '../../../emitter-kHxkUxco.js';
|
|
7
7
|
import '../../../internals/types.js';
|
|
8
8
|
import '../../../internals/helpers/guards.js';
|
|
9
9
|
import '../../../internals/serializable.js';
|
|
@@ -19,11 +19,11 @@ import '../../../memory/base.js';
|
|
|
19
19
|
import '../../../backend/message.js';
|
|
20
20
|
import 'ai';
|
|
21
21
|
import '../../../template.js';
|
|
22
|
-
import '../../../chat-
|
|
22
|
+
import '../../../chat-CfTNfR60.js';
|
|
23
23
|
import '../../../backend/constants.js';
|
|
24
24
|
import '../../../logger/logger.js';
|
|
25
25
|
import 'pino';
|
|
26
|
-
import '../../../base-
|
|
26
|
+
import '../../../base-BjzyQ8k6.js';
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/requirements/conditional.ts"],"names":["ConditionalRequirement","Requirement","source","sourceTool","before","after","forceAfterSet","minInvocations","maxInvocations","forceAtStepValue","onlySuccessInvocations","consecutiveAllowedValue","customChecks","forcePreventStop","reason","target","options","name","extractTargetName","enabled","priority","undefined","extractTargets","onlyBefore","onlyAfter","forceAfter","Infinity","forceAtStep","consecutiveAllowed","checkInvariant","ValueError","sourceName","has","beforeAfterIntersection","Set","filter","x","size","Array","from","join","beforeForceAfterIntersection","init","tools","ctx","allTargets","assertAllRulesFound","tool","targetSeenIn","reset","clear","_run","state","_","RequirementError","steps","step","error","lastStepTool","at","invocations","length","resolve","allowed","currentStep","forced","Boolean","hidden","preventStop","stepsAsToolCalls","map","isTruthy","afterToolsRemaining","stepTool","matcher","delete","check","clone","instance"],"mappings":"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","file":"conditional.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Requirement, RequirementError, Rule } from \"./requirement.js\";\nimport {\n TargetType,\n MultiTargetType,\n extractTargets,\n extractTargetName,\n targetSeenIn,\n assertAllRulesFound,\n} from \"./utils.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { isTruthy } from \"remeda\";\n\nexport interface ConditionalRequirementOptions {\n name?: string;\n forceAtStep?: number;\n onlyBefore?: MultiTargetType;\n onlyAfter?: MultiTargetType;\n forceAfter?: MultiTargetType;\n forcePreventStop?: boolean;\n minInvocations?: number;\n maxInvocations?: number;\n onlySuccessInvocations?: boolean;\n consecutiveAllowed?: boolean;\n priority?: number;\n customChecks?: ((state: RequirementAgentRunState) => boolean)[];\n enabled?: boolean;\n reason?: string;\n}\n\nexport class ConditionalRequirement extends Requirement {\n protected source: TargetType;\n protected sourceTool?: AnyTool;\n protected before: Set<TargetType>;\n protected after: Set<TargetType>;\n protected forceAfterSet: Set<TargetType>;\n protected minInvocations: number;\n protected maxInvocations: number;\n protected forceAtStepValue?: number;\n protected onlySuccessInvocations: boolean;\n protected consecutiveAllowedValue: boolean;\n protected customChecks: ((state: RequirementAgentRunState) => boolean)[];\n protected forcePreventStop: boolean;\n protected reason?: string;\n\n constructor(target: TargetType, options: ConditionalRequirementOptions = {}) {\n super(options.name || `Condition${extractTargetName(target)}`);\n\n this.source = target;\n this.enabled = options.enabled ?? true;\n\n if (options.priority !== undefined) {\n this.priority = options.priority;\n }\n\n this.before = extractTargets(options.onlyBefore);\n this.after = extractTargets(options.onlyAfter);\n this.forceAfterSet = extractTargets(options.forceAfter);\n this.minInvocations = options.minInvocations ?? 0;\n this.maxInvocations = options.maxInvocations ?? Infinity;\n this.forceAtStepValue = options.forceAtStep;\n this.onlySuccessInvocations = options.onlySuccessInvocations ?? true;\n this.consecutiveAllowedValue = options.consecutiveAllowed ?? true;\n this.customChecks = options.customChecks ?? [];\n this.forcePreventStop = options.forcePreventStop ?? true;\n this.reason = options.reason;\n\n this.checkInvariant();\n }\n\n protected checkInvariant(): void {\n if (this.minInvocations < 0) {\n throw new ValueError(\"The 'minInvocations' argument must be non negative!\");\n }\n\n if (this.maxInvocations < 0) {\n throw new ValueError(\"The 'maxInvocations' argument must be non negative!\");\n }\n\n if (this.minInvocations > this.maxInvocations) {\n throw new ValueError(\n \"The 'minInvocations' argument must be less than or equal to 'maxInvocations'!\",\n );\n }\n\n const sourceName = extractTargetName(this.source);\n if (this.before.has(this.source)) {\n throw new ValueError(`Referencing self in 'before' is not allowed (${sourceName})!`);\n }\n\n if (this.forceAfterSet.has(this.source)) {\n throw new ValueError(`Referencing self in 'forceAfter' is not allowed (${sourceName})!`);\n }\n\n const beforeAfterIntersection = new Set([...this.before].filter((x) => this.after.has(x)));\n if (beforeAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'after' at the same time: ${Array.from(beforeAfterIntersection).join(\", \")}!`,\n );\n }\n\n const beforeForceAfterIntersection = new Set(\n [...this.before].filter((x) => this.forceAfterSet.has(x)),\n );\n if (beforeForceAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'forceAfter' at the same time: ${Array.from(beforeForceAfterIntersection).join(\", \")}!`,\n );\n }\n\n if (this.forceAtStepValue !== undefined && this.forceAtStepValue < 1) {\n throw new ValueError(\"The 'forceAtStep' argument must be >= 1!\");\n }\n }\n\n async init(tools: AnyTool[], ctx: RunContext<any>): Promise<void> {\n await super.init(tools, ctx);\n\n const allTargets = new Set([...this.before, ...this.after, ...this.forceAfterSet, this.source]);\n assertAllRulesFound(allTargets, tools);\n\n for (const tool of tools) {\n if (targetSeenIn(tool, this.source)) {\n if (this.sourceTool && this.sourceTool !== tool) {\n throw new ValueError(\n `More than one occurrence of ${extractTargetName(this.source)} has been found!`,\n );\n }\n this.sourceTool = tool;\n }\n }\n\n if (!this.sourceTool) {\n throw new ValueError(`Source tool ${extractTargetName(this.source)} was not found!`);\n }\n\n if (targetSeenIn(this.sourceTool, this.before)) {\n throw new ValueError(`Referencing self in 'before' is not allowed: ${this.sourceTool.name}!`);\n }\n\n if (this.consecutiveAllowedValue && targetSeenIn(this.sourceTool, this.forceAfterSet)) {\n throw new ValueError(\n `Referencing self in 'forceAfter' is not allowed: ${this.sourceTool.name}. ` +\n `It would prevent an infinite loop. Consider setting 'consecutiveAllowed' to false.`,\n );\n }\n }\n\n reset(): this {\n this.before.clear();\n this.after.clear();\n this.forceAfterSet.clear();\n return this;\n }\n\n async _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]> {\n const sourceTool = this.sourceTool;\n if (!sourceTool) {\n throw new RequirementError(\"Source was not found!\", this);\n }\n\n // Get steps from state (assuming state has steps property)\n const steps = this.onlySuccessInvocations\n ? state.steps.filter((step) => !step.error)\n : state.steps;\n\n const lastStepTool = steps.at(-1)?.tool;\n\n const invocations = steps.filter((step) => step.tool === sourceTool).length;\n\n const resolve = (allowed: boolean): Rule[] => {\n const currentStep = steps.length + 1;\n if (!allowed && this.forceAtStepValue === currentStep) {\n throw new RequirementError(\n `Tool '${sourceTool.name}' cannot be executed at step ${this.forceAtStepValue} ` +\n `because it has not met all requirements.`,\n this,\n );\n }\n\n const forced = allowed\n ? Boolean(\n targetSeenIn(lastStepTool, this.forceAfterSet) || this.forceAtStepValue === currentStep,\n )\n : false;\n\n return [\n {\n target: sourceTool.name,\n allowed,\n forced,\n hidden: false,\n preventStop: this.minInvocations > invocations || (forced && this.forcePreventStop),\n reason: !allowed ? this.reason : undefined,\n },\n ];\n };\n\n // Check consecutive constraint\n if (!this.consecutiveAllowedValue && sourceTool === lastStepTool) {\n return resolve(false);\n }\n\n // Check max invocations\n if (invocations >= this.maxInvocations) {\n return resolve(false);\n }\n\n // Check after/before constraints\n if (this.after.size > 0) {\n const stepsAsToolCalls = steps.map((step) => step.tool).filter(isTruthy);\n const afterToolsRemaining = new Set(this.after);\n\n for (const stepTool of stepsAsToolCalls) {\n if (targetSeenIn(stepTool, this.forceAfterSet)) {\n return resolve(false);\n }\n\n const matcher = targetSeenIn(stepTool as any, this.after);\n if (matcher) {\n afterToolsRemaining.delete(matcher);\n }\n }\n\n if (afterToolsRemaining.size > 0) {\n return resolve(false);\n }\n }\n\n // Check custom checks\n for (const check of this.customChecks) {\n if (!check(state)) {\n return resolve(false);\n }\n }\n\n return resolve(true);\n }\n\n async clone(): Promise<this> {\n const instance = await super.clone();\n instance.before = new Set(this.before);\n instance.after = new Set(this.after);\n instance.forceAfterSet = new Set(this.forceAfterSet);\n instance.minInvocations = this.minInvocations;\n instance.maxInvocations = this.maxInvocations;\n instance.customChecks = [...this.customChecks];\n instance.onlySuccessInvocations = this.onlySuccessInvocations;\n instance.forceAtStepValue = this.forceAtStepValue;\n instance.consecutiveAllowedValue = this.consecutiveAllowedValue;\n instance.source = this.source;\n instance.sourceTool = this.sourceTool;\n instance.forcePreventStop = this.forcePreventStop;\n instance.reason = this.reason;\n return instance;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/conditional.ts"],"names":["ConditionalRequirement","Requirement","source","sourceTool","before","after","forceAfterSet","minInvocations","maxInvocations","forceAtStepValue","onlySuccessInvocations","consecutiveAllowedValue","customChecks","forcePreventStop","reason","target","options","name","extractTargetName","enabled","priority","undefined","extractTargets","onlyBefore","onlyAfter","forceAfter","Infinity","forceAtStep","consecutiveAllowed","checkInvariant","ValueError","sourceName","has","beforeAfterIntersection","Set","filter","x","size","Array","from","join","beforeForceAfterIntersection","init","tools","ctx","allTargets","assertAllRulesFound","tool","targetSeenIn","reset","clear","_run","state","_","RequirementError","steps","step","error","lastStepTool","at","invocations","length","resolve","allowed","currentStep","forced","Boolean","hidden","preventStop","stepsAsToolCalls","map","isTruthy","afterToolsRemaining","stepTool","matcher","delete","check","clone","instance"],"mappings":"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","file":"conditional.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Requirement, RequirementError, Rule } from \"./requirement.js\";\nimport {\n TargetType,\n MultiTargetType,\n extractTargets,\n extractTargetName,\n targetSeenIn,\n assertAllRulesFound,\n} from \"./utils.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { isTruthy } from \"remeda\";\n\nexport interface ConditionalRequirementOptions {\n name?: string;\n forceAtStep?: number;\n onlyBefore?: MultiTargetType;\n onlyAfter?: MultiTargetType;\n forceAfter?: MultiTargetType;\n forcePreventStop?: boolean;\n minInvocations?: number;\n maxInvocations?: number;\n onlySuccessInvocations?: boolean;\n consecutiveAllowed?: boolean;\n priority?: number;\n customChecks?: ((state: RequirementAgentRunState) => boolean)[];\n enabled?: boolean;\n reason?: string;\n}\n\nexport class ConditionalRequirement extends Requirement {\n protected source: TargetType;\n protected sourceTool?: AnyTool;\n protected before: Set<TargetType>;\n protected after: Set<TargetType>;\n protected forceAfterSet: Set<TargetType>;\n protected minInvocations: number;\n protected maxInvocations: number;\n protected forceAtStepValue?: number;\n protected onlySuccessInvocations: boolean;\n protected consecutiveAllowedValue: boolean;\n protected customChecks: ((state: RequirementAgentRunState) => boolean)[];\n protected forcePreventStop: boolean;\n protected reason?: string;\n\n constructor(target: TargetType, options: ConditionalRequirementOptions = {}) {\n super(options.name || `Condition${extractTargetName(target)}`);\n\n this.source = target;\n this.enabled = options.enabled ?? true;\n\n if (options.priority !== undefined) {\n this.priority = options.priority;\n }\n\n this.before = extractTargets(options.onlyBefore);\n this.after = extractTargets(options.onlyAfter);\n this.forceAfterSet = extractTargets(options.forceAfter);\n this.minInvocations = options.minInvocations ?? 0;\n this.maxInvocations = options.maxInvocations ?? Infinity;\n this.forceAtStepValue = options.forceAtStep;\n this.onlySuccessInvocations = options.onlySuccessInvocations ?? true;\n this.consecutiveAllowedValue = options.consecutiveAllowed ?? true;\n this.customChecks = options.customChecks ?? [];\n this.forcePreventStop = options.forcePreventStop ?? true;\n this.reason = options.reason;\n\n this.checkInvariant();\n }\n\n protected checkInvariant(): void {\n if (this.minInvocations < 0) {\n throw new ValueError(\"The 'minInvocations' argument must be non negative!\");\n }\n\n if (this.maxInvocations < 0) {\n throw new ValueError(\"The 'maxInvocations' argument must be non negative!\");\n }\n\n if (this.minInvocations > this.maxInvocations) {\n throw new ValueError(\n \"The 'minInvocations' argument must be less than or equal to 'maxInvocations'!\",\n );\n }\n\n const sourceName = extractTargetName(this.source);\n if (this.before.has(this.source)) {\n throw new ValueError(`Referencing self in 'before' is not allowed (${sourceName})!`);\n }\n\n if (this.forceAfterSet.has(this.source)) {\n throw new ValueError(`Referencing self in 'forceAfter' is not allowed (${sourceName})!`);\n }\n\n const beforeAfterIntersection = new Set([...this.before].filter((x) => this.after.has(x)));\n if (beforeAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'after' at the same time: ${Array.from(beforeAfterIntersection).join(\", \")}!`,\n );\n }\n\n const beforeForceAfterIntersection = new Set(\n [...this.before].filter((x) => this.forceAfterSet.has(x)),\n );\n if (beforeForceAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'forceAfter' at the same time: ${Array.from(beforeForceAfterIntersection).join(\", \")}!`,\n );\n }\n\n if (this.forceAtStepValue !== undefined && this.forceAtStepValue < 1) {\n throw new ValueError(\"The 'forceAtStep' argument must be >= 1!\");\n }\n }\n\n async init(tools: AnyTool[], ctx: RunContext<any>): Promise<void> {\n await super.init(tools, ctx);\n\n const allTargets = new Set([...this.before, ...this.after, ...this.forceAfterSet, this.source]);\n assertAllRulesFound(allTargets, tools);\n\n for (const tool of tools) {\n if (targetSeenIn(tool, this.source)) {\n if (this.sourceTool && this.sourceTool !== tool) {\n throw new ValueError(\n `More than one occurrence of ${extractTargetName(this.source)} has been found!`,\n );\n }\n this.sourceTool = tool;\n }\n }\n\n if (!this.sourceTool) {\n throw new ValueError(`Source tool ${extractTargetName(this.source)} was not found!`);\n }\n\n if (targetSeenIn(this.sourceTool, this.before)) {\n throw new ValueError(`Referencing self in 'before' is not allowed: ${this.sourceTool.name}!`);\n }\n\n if (this.consecutiveAllowedValue && targetSeenIn(this.sourceTool, this.forceAfterSet)) {\n throw new ValueError(\n `Referencing self in 'forceAfter' is not allowed: ${this.sourceTool.name}. ` +\n `It would prevent an infinite loop. Consider setting 'consecutiveAllowed' to false.`,\n );\n }\n }\n\n reset(): this {\n this.before.clear();\n this.after.clear();\n this.forceAfterSet.clear();\n return this;\n }\n\n async _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]> {\n const sourceTool = this.sourceTool;\n if (!sourceTool) {\n throw new RequirementError(\"Source was not found!\", this);\n }\n\n // Get steps from state (assuming state has steps property)\n const steps = this.onlySuccessInvocations\n ? state.steps.filter((step) => !step.error)\n : state.steps;\n\n const lastStepTool = steps.at(-1)?.tool;\n\n const invocations = steps.filter((step) => step.tool === sourceTool).length;\n\n const resolve = (allowed: boolean): Rule[] => {\n const currentStep = steps.length + 1;\n if (!allowed && this.forceAtStepValue === currentStep) {\n throw new RequirementError(\n `Tool '${sourceTool.name}' cannot be executed at step ${this.forceAtStepValue} ` +\n `because it has not met all requirements.`,\n this,\n );\n }\n\n const forced = allowed\n ? Boolean(\n targetSeenIn(lastStepTool, this.forceAfterSet) || this.forceAtStepValue === currentStep,\n )\n : false;\n\n return [\n {\n target: sourceTool.name,\n allowed,\n forced,\n hidden: false,\n preventStop: this.minInvocations > invocations || (forced && this.forcePreventStop),\n reason: !allowed ? this.reason : undefined,\n },\n ];\n };\n\n // Check consecutive constraint\n if (!this.consecutiveAllowedValue && sourceTool === lastStepTool) {\n return resolve(false);\n }\n\n // Check max invocations\n if (invocations >= this.maxInvocations) {\n return resolve(false);\n }\n\n // Check after/before constraints\n if (this.after.size > 0) {\n const stepsAsToolCalls = steps.map((step) => step.tool).filter(isTruthy);\n const afterToolsRemaining = new Set(this.after);\n\n for (const stepTool of stepsAsToolCalls) {\n if (targetSeenIn(stepTool, this.forceAfterSet)) {\n return resolve(false);\n }\n\n const matcher = targetSeenIn(stepTool as any, this.after);\n if (matcher) {\n afterToolsRemaining.delete(matcher);\n }\n }\n\n if (afterToolsRemaining.size > 0) {\n return resolve(false);\n }\n }\n\n // Check custom checks\n for (const check of this.customChecks) {\n if (!check(state)) {\n return resolve(false);\n }\n }\n\n return resolve(true);\n }\n\n async clone(): Promise<this> {\n const instance = await super.clone();\n instance.before = new Set(this.before);\n instance.after = new Set(this.after);\n instance.forceAfterSet = new Set(this.forceAfterSet);\n instance.minInvocations = this.minInvocations;\n instance.maxInvocations = this.maxInvocations;\n instance.customChecks = [...this.customChecks];\n instance.onlySuccessInvocations = this.onlySuccessInvocations;\n instance.forceAtStepValue = this.forceAtStepValue;\n instance.consecutiveAllowedValue = this.consecutiveAllowedValue;\n instance.source = this.source;\n instance.sourceTool = this.sourceTool;\n instance.forcePreventStop = this.forcePreventStop;\n instance.reason = this.reason;\n return instance;\n }\n}\n"]}
|
|
@@ -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,sBAAW,sCAAA,CAAA;AACvB;AACA,IAAA,IAAA,CAAKH,SAAAA,GAAYE,KAAAA;AACnB;AAEA,EAAA,IACIE,OAAAA,GAAyC;AAC3C,IAAA,OAAOC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,aAAA;AAAeC,QAAAA,kBAAAA,CAAY,KAAKb,IAAI;;MAChDc,OAAAA,EAAS;KACX,CAAA;AACF;AAEAC,EAAAA,GAAAA,CAAId,KAAAA,EAAiC;AACnC,IAAA,OAAOe,sBAAAA,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,sBAAW,sCAAA,CAAA;AACvB,IAAA;AACA,IAAA,IAAA,CAAKH,SAAAA,GAAYE,KAAAA;AACnB,EAAA;AAEA,EAAA,IACIE,OAAAA,GAAyC;AAC3C,IAAA,OAAOC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,aAAA;AAAeC,QAAAA,kBAAAA,CAAY,KAAKb,IAAI;;MAChDc,OAAAA,EAAS;KACX,CAAA;AACF,EAAA;AAEAC,EAAAA,GAAAA,CAAId,KAAAA,EAAiC;AACnC,IAAA,OAAOe,sBAAAA,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,yBAAAA,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.cjs","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,8 +1,8 @@
|
|
|
1
1
|
import { MiddlewareType, Run, RunContext } from '../../../context.cjs';
|
|
2
2
|
import { AnyTool } from '../../../tools/base.cjs';
|
|
3
|
-
import { E as Emitter, C as Callback } from '../../../emitter-
|
|
3
|
+
import { E as Emitter, C as Callback } from '../../../emitter-D4OcelZ9.cjs';
|
|
4
4
|
import { FrameworkError } from '../../../errors.cjs';
|
|
5
|
-
import { R as RequirementAgentRunState } from '../../../types-
|
|
5
|
+
import { R as RequirementAgentRunState } from '../../../types-BNsa3W7Z.cjs';
|
|
6
6
|
import '../../../internals/serializable.cjs';
|
|
7
7
|
import '../../../internals/types.cjs';
|
|
8
8
|
import '../../../internals/helpers/guards.cjs';
|
|
@@ -17,11 +17,11 @@ import '../../../memory/base.cjs';
|
|
|
17
17
|
import '../../../backend/message.cjs';
|
|
18
18
|
import 'ai';
|
|
19
19
|
import '../../../template.cjs';
|
|
20
|
-
import '../../../chat-
|
|
20
|
+
import '../../../chat-C20nYj46.cjs';
|
|
21
21
|
import '../../../backend/constants.cjs';
|
|
22
22
|
import '../../../logger/logger.cjs';
|
|
23
23
|
import 'pino';
|
|
24
|
-
import '../../../base-
|
|
24
|
+
import '../../../base-s3ioVIE9.cjs';
|
|
25
25
|
|
|
26
26
|
interface Rule {
|
|
27
27
|
target: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MiddlewareType, Run, RunContext } from '../../../context.js';
|
|
2
2
|
import { AnyTool } from '../../../tools/base.js';
|
|
3
|
-
import { E as Emitter, C as Callback } from '../../../emitter-
|
|
3
|
+
import { E as Emitter, C as Callback } from '../../../emitter-kHxkUxco.js';
|
|
4
4
|
import { FrameworkError } from '../../../errors.js';
|
|
5
|
-
import { R as RequirementAgentRunState } from '../../../types-
|
|
5
|
+
import { R as RequirementAgentRunState } from '../../../types-DYtzF6ya.js';
|
|
6
6
|
import '../../../internals/serializable.js';
|
|
7
7
|
import '../../../internals/types.js';
|
|
8
8
|
import '../../../internals/helpers/guards.js';
|
|
@@ -17,11 +17,11 @@ import '../../../memory/base.js';
|
|
|
17
17
|
import '../../../backend/message.js';
|
|
18
18
|
import 'ai';
|
|
19
19
|
import '../../../template.js';
|
|
20
|
-
import '../../../chat-
|
|
20
|
+
import '../../../chat-CfTNfR60.js';
|
|
21
21
|
import '../../../backend/constants.js';
|
|
22
22
|
import '../../../logger/logger.js';
|
|
23
23
|
import 'pino';
|
|
24
|
-
import '../../../base-
|
|
24
|
+
import '../../../base-BjzyQ8k6.js';
|
|
25
25
|
|
|
26
26
|
interface Rule {
|
|
27
27
|
target: string;
|
|
@@ -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 };
|