beeai-framework 0.1.28 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/a2a/agents/agent.cjs.map +1 -1
- package/dist/adapters/a2a/agents/agent.d.cts +2 -2
- package/dist/adapters/a2a/agents/agent.d.ts +2 -2
- package/dist/adapters/a2a/agents/agent.js.map +1 -1
- package/dist/adapters/a2a/agents/events.d.cts +1 -1
- package/dist/adapters/a2a/agents/events.d.ts +1 -1
- package/dist/adapters/a2a/agents/types.d.cts +2 -2
- package/dist/adapters/a2a/agents/types.d.ts +2 -2
- package/dist/adapters/a2a/agents/utils.cjs +52 -11
- package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
- package/dist/adapters/a2a/agents/utils.js +52 -11
- package/dist/adapters/a2a/agents/utils.js.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
- package/dist/adapters/a2a/serve/server.cjs.map +1 -1
- package/dist/adapters/a2a/serve/server.d.cts +2 -2
- package/dist/adapters/a2a/serve/server.d.ts +2 -2
- package/dist/adapters/a2a/serve/server.js.map +1 -1
- package/dist/adapters/acp/agents/agent.cjs.map +1 -1
- package/dist/adapters/acp/agents/agent.d.cts +2 -2
- package/dist/adapters/acp/agents/agent.d.ts +2 -2
- package/dist/adapters/acp/agents/agent.js.map +1 -1
- package/dist/adapters/acp/agents/events.d.cts +1 -1
- package/dist/adapters/acp/agents/events.d.ts +1 -1
- package/dist/adapters/agentstack/agents/agent.cjs.map +1 -1
- package/dist/adapters/agentstack/agents/agent.d.cts +2 -2
- package/dist/adapters/agentstack/agents/agent.d.ts +2 -2
- package/dist/adapters/agentstack/agents/agent.js.map +1 -1
- package/dist/adapters/agentstack/agents/events.d.cts +1 -1
- package/dist/adapters/agentstack/agents/events.d.ts +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
- package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/chat.d.cts +3 -3
- package/dist/adapters/anthropic/backend/chat.d.ts +3 -3
- package/dist/adapters/anthropic/backend/chat.js.map +1 -1
- package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/client.js.map +1 -1
- package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
- package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
- package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.d.cts +3 -3
- package/dist/adapters/azure-openai/backend/chat.d.ts +3 -3
- package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
- package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/client.js.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
- package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
- package/dist/adapters/dummy/backend/chat.d.cts +2 -2
- package/dist/adapters/dummy/backend/chat.d.ts +2 -2
- package/dist/adapters/dummy/backend/chat.js.map +1 -1
- package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
- package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
- package/dist/adapters/dummy/backend/embedding.js.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.d.cts +3 -3
- package/dist/adapters/google-vertex/backend/chat.d.ts +3 -3
- package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
- package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/client.js.map +1 -1
- package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
- package/dist/adapters/groq/backend/chat.cjs.map +1 -1
- package/dist/adapters/groq/backend/chat.d.cts +3 -3
- package/dist/adapters/groq/backend/chat.d.ts +3 -3
- package/dist/adapters/groq/backend/chat.js.map +1 -1
- package/dist/adapters/groq/backend/client.cjs.map +1 -1
- package/dist/adapters/groq/backend/client.js.map +1 -1
- package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
- package/dist/adapters/groq/backend/embedding.d.cts +2 -2
- package/dist/adapters/groq/backend/embedding.d.ts +2 -2
- package/dist/adapters/groq/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/chat.cjs +6 -28
- package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
- package/dist/adapters/langchain/backend/chat.d.cts +6 -5
- package/dist/adapters/langchain/backend/chat.d.ts +6 -5
- package/dist/adapters/langchain/backend/chat.js +6 -28
- package/dist/adapters/langchain/backend/chat.js.map +1 -1
- package/dist/adapters/langchain/backend/embedding.cjs +3 -2
- package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
- package/dist/adapters/langchain/backend/embedding.d.cts +3 -3
- package/dist/adapters/langchain/backend/embedding.d.ts +3 -3
- package/dist/adapters/langchain/backend/embedding.js +3 -2
- package/dist/adapters/langchain/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/utils.cjs +328 -0
- package/dist/adapters/langchain/backend/utils.cjs.map +1 -0
- package/dist/adapters/langchain/backend/utils.d.cts +39 -0
- package/dist/adapters/langchain/backend/utils.d.ts +39 -0
- package/dist/adapters/langchain/backend/utils.js +324 -0
- package/dist/adapters/langchain/backend/utils.js.map +1 -0
- package/dist/adapters/langchain/tools.cjs.map +1 -1
- package/dist/adapters/langchain/tools.d.cts +2 -2
- package/dist/adapters/langchain/tools.d.ts +2 -2
- package/dist/adapters/langchain/tools.js.map +1 -1
- package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
- package/dist/adapters/mcp/serve/http_server.js.map +1 -1
- package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
- package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
- package/dist/adapters/mcp/serve/server.cjs.map +1 -1
- package/dist/adapters/mcp/serve/server.js.map +1 -1
- package/dist/adapters/minimax/backend/chat.cjs +25 -0
- package/dist/adapters/minimax/backend/chat.cjs.map +1 -0
- package/dist/adapters/minimax/backend/chat.d.cts +38 -0
- package/dist/adapters/minimax/backend/chat.d.ts +38 -0
- package/dist/adapters/minimax/backend/chat.js +23 -0
- package/dist/adapters/minimax/backend/chat.js.map +1 -0
- package/dist/adapters/minimax/backend/client.cjs +31 -0
- package/dist/adapters/minimax/backend/client.cjs.map +1 -0
- package/dist/adapters/minimax/backend/client.d.cts +17 -0
- package/dist/adapters/minimax/backend/client.d.ts +17 -0
- package/dist/adapters/minimax/backend/client.js +29 -0
- package/dist/adapters/minimax/backend/client.js.map +1 -0
- package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
- package/dist/adapters/ollama/backend/chat.d.cts +2 -2
- package/dist/adapters/ollama/backend/chat.d.ts +2 -2
- package/dist/adapters/ollama/backend/chat.js.map +1 -1
- package/dist/adapters/ollama/backend/client.cjs.map +1 -1
- package/dist/adapters/ollama/backend/client.js.map +1 -1
- package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
- package/dist/adapters/ollama/backend/embedding.d.cts +2 -2
- package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
- package/dist/adapters/ollama/backend/embedding.js.map +1 -1
- package/dist/adapters/openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/openai/backend/chat.d.cts +2 -2
- package/dist/adapters/openai/backend/chat.d.ts +2 -2
- package/dist/adapters/openai/backend/chat.js.map +1 -1
- package/dist/adapters/openai/backend/client.cjs.map +1 -1
- package/dist/adapters/openai/backend/client.js.map +1 -1
- package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/openai/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.d.cts +2 -2
- package/dist/adapters/vercel/backend/chat.d.ts +2 -2
- package/dist/adapters/vercel/backend/chat.js.map +1 -1
- package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
- package/dist/adapters/vercel/backend/embedding.d.cts +2 -2
- package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
- package/dist/adapters/vercel/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +2 -2
- package/dist/adapters/vercel/backend/utils.d.ts +2 -2
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
- package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
- package/dist/adapters/watsonx/backend/chat.js +1 -1
- package/dist/adapters/watsonx/backend/chat.js.map +1 -1
- package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/client.js.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
- package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
- package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
- package/dist/adapters/xai/backend/chat.cjs.map +1 -1
- package/dist/adapters/xai/backend/chat.d.cts +2 -2
- package/dist/adapters/xai/backend/chat.d.ts +2 -2
- package/dist/adapters/xai/backend/chat.js.map +1 -1
- package/dist/adapters/xai/backend/client.cjs.map +1 -1
- package/dist/adapters/xai/backend/client.js.map +1 -1
- package/dist/{agent-BAVf6-xf.d.ts → agent-s3uhvAba.d.ts} +5 -5
- package/dist/{agent-DHO-oJQf.d.cts → agent-zfT__iq9.d.cts} +5 -5
- package/dist/agents/base.cjs.map +1 -1
- package/dist/agents/base.d.cts +2 -2
- package/dist/agents/base.d.ts +2 -2
- package/dist/agents/base.js.map +1 -1
- package/dist/agents/experimental/replan/agent.cjs.map +1 -1
- package/dist/agents/experimental/replan/agent.d.cts +3 -3
- package/dist/agents/experimental/replan/agent.d.ts +3 -3
- package/dist/agents/experimental/replan/agent.js.map +1 -1
- package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
- package/dist/agents/experimental/replan/prompts.d.cts +1 -1
- package/dist/agents/experimental/replan/prompts.d.ts +1 -1
- package/dist/agents/experimental/replan/prompts.js.map +1 -1
- package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/agent.d.cts +3 -3
- package/dist/agents/experimental/streamlit/agent.d.ts +3 -3
- package/dist/agents/experimental/streamlit/agent.js.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.cjs +2 -2
- package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.js +2 -2
- package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
- package/dist/agents/react/agent.cjs +6 -6
- package/dist/agents/react/agent.cjs.map +1 -1
- package/dist/agents/react/agent.d.cts +4 -4
- package/dist/agents/react/agent.d.ts +4 -4
- package/dist/agents/react/agent.js.map +1 -1
- package/dist/agents/react/prompts.cjs.map +1 -1
- package/dist/agents/react/prompts.d.cts +1 -1
- package/dist/agents/react/prompts.d.ts +1 -1
- package/dist/agents/react/prompts.js.map +1 -1
- package/dist/agents/react/runners/base.cjs.map +1 -1
- package/dist/agents/react/runners/base.d.cts +4 -4
- package/dist/agents/react/runners/base.d.ts +4 -4
- package/dist/agents/react/runners/base.js.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
- package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
- package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.cts +5 -5
- package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
- package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
- package/dist/agents/react/runners/default/runner.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.d.cts +5 -5
- package/dist/agents/react/runners/default/runner.d.ts +5 -5
- package/dist/agents/react/runners/default/runner.js.map +1 -1
- package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
- package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
- package/dist/agents/react/runners/granite/prompts.d.cts +1 -1
- package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
- package/dist/agents/react/runners/granite/prompts.js.map +1 -1
- package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
- package/dist/agents/react/runners/granite/runner.d.cts +5 -5
- package/dist/agents/react/runners/granite/runner.d.ts +5 -5
- package/dist/agents/react/runners/granite/runner.js.map +1 -1
- package/dist/agents/react/types.d.cts +2 -2
- package/dist/agents/react/types.d.ts +2 -2
- package/dist/agents/requirement/agent.cjs.map +1 -1
- package/dist/agents/requirement/agent.d.cts +5 -5
- package/dist/agents/requirement/agent.d.ts +5 -5
- package/dist/agents/requirement/agent.js.map +1 -1
- package/dist/agents/requirement/prompts.d.cts +2 -2
- package/dist/agents/requirement/prompts.d.ts +2 -2
- package/dist/agents/requirement/requirements/conditional.cjs.map +1 -1
- package/dist/agents/requirement/requirements/conditional.d.cts +5 -5
- package/dist/agents/requirement/requirements/conditional.d.ts +5 -5
- package/dist/agents/requirement/requirements/conditional.js.map +1 -1
- package/dist/agents/requirement/requirements/requirement.cjs.map +1 -1
- package/dist/agents/requirement/requirements/requirement.d.cts +4 -4
- package/dist/agents/requirement/requirements/requirement.d.ts +4 -4
- package/dist/agents/requirement/requirements/requirement.js.map +1 -1
- package/dist/agents/requirement/requirements/utils.cjs.map +1 -1
- package/dist/agents/requirement/requirements/utils.d.cts +1 -1
- package/dist/agents/requirement/requirements/utils.d.ts +1 -1
- package/dist/agents/requirement/requirements/utils.js.map +1 -1
- package/dist/agents/requirement/runner.cjs.map +1 -1
- package/dist/agents/requirement/runner.d.cts +5 -5
- package/dist/agents/requirement/runner.d.ts +5 -5
- package/dist/agents/requirement/runner.js.map +1 -1
- package/dist/agents/requirement/types.d.cts +4 -4
- package/dist/agents/requirement/types.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.cjs.map +1 -1
- package/dist/agents/requirement/utils/llm.d.cts +4 -4
- package/dist/agents/requirement/utils/llm.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.js.map +1 -1
- package/dist/agents/requirement/utils/tool.cjs.map +1 -1
- package/dist/agents/requirement/utils/tool.d.cts +4 -4
- package/dist/agents/requirement/utils/tool.d.ts +4 -4
- package/dist/agents/requirement/utils/tool.js.map +1 -1
- package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -1
- package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -1
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.d.cts +4 -4
- package/dist/agents/toolCalling/agent.d.ts +4 -4
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/agents/toolCalling/prompts.cjs.map +1 -1
- package/dist/agents/toolCalling/prompts.js.map +1 -1
- package/dist/agents/toolCalling/types.d.cts +1 -1
- package/dist/agents/toolCalling/types.d.ts +1 -1
- package/dist/agents/types.d.cts +2 -2
- package/dist/agents/types.d.ts +2 -2
- package/dist/backend/backend.cjs.map +1 -1
- package/dist/backend/backend.d.cts +3 -3
- package/dist/backend/backend.d.ts +3 -3
- package/dist/backend/backend.js.map +1 -1
- package/dist/backend/chat.cjs.map +1 -1
- package/dist/backend/chat.d.cts +2 -2
- package/dist/backend/chat.d.ts +2 -2
- package/dist/backend/chat.js.map +1 -1
- package/dist/backend/client.cjs.map +1 -1
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/constants.cjs +7 -0
- package/dist/backend/constants.cjs.map +1 -1
- package/dist/backend/constants.d.cts +5 -0
- package/dist/backend/constants.d.ts +5 -0
- package/dist/backend/constants.js +7 -0
- package/dist/backend/constants.js.map +1 -1
- package/dist/backend/core.d.cts +2 -2
- package/dist/backend/core.d.ts +2 -2
- package/dist/backend/embedding.cjs.map +1 -1
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/embedding.js.map +1 -1
- package/dist/backend/errors.cjs.map +1 -1
- package/dist/backend/errors.d.cts +2 -2
- package/dist/backend/errors.d.ts +2 -2
- package/dist/backend/errors.js.map +1 -1
- package/dist/backend/message.cjs.map +1 -1
- package/dist/backend/message.js.map +1 -1
- package/dist/backend/utils.cjs.map +1 -1
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/backend/utils.js.map +1 -1
- package/dist/{base-BfhNzUYf.d.ts → base-BjzyQ8k6.d.ts} +2 -2
- package/dist/{base-BqzN2QwB.d.cts → base-s3ioVIE9.d.cts} +2 -2
- package/dist/cache/decoratorCache.cjs.map +1 -1
- package/dist/cache/decoratorCache.js.map +1 -1
- package/dist/cache/fileCache.cjs.map +1 -1
- package/dist/cache/fileCache.js.map +1 -1
- package/dist/cache/nullCache.cjs.map +1 -1
- package/dist/cache/nullCache.js.map +1 -1
- package/dist/cache/slidingCache.cjs.map +1 -1
- package/dist/cache/slidingCache.js.map +1 -1
- package/dist/cache/unconstrainedCache.cjs.map +1 -1
- package/dist/cache/unconstrainedCache.js.map +1 -1
- package/dist/{chat-DaqV3woF.d.cts → chat-C20nYj46.d.cts} +3 -3
- package/dist/{chat-DTxmaKP0.d.ts → chat-CfTNfR60.d.ts} +3 -3
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.js.map +1 -1
- package/dist/emitter/emitter.cjs.map +1 -1
- package/dist/emitter/emitter.d.cts +1 -1
- package/dist/emitter/emitter.d.ts +1 -1
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/types.d.cts +1 -1
- package/dist/emitter/types.d.ts +1 -1
- package/dist/emitter/utils.cjs.map +1 -1
- package/dist/emitter/utils.js.map +1 -1
- package/dist/{emitter-UkIkNrek.d.cts → emitter-D4OcelZ9.d.cts} +2 -2
- package/dist/{emitter-CL56qab4.d.ts → emitter-kHxkUxco.d.ts} +2 -2
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/internals/env.cjs.map +1 -1
- package/dist/internals/env.js.map +1 -1
- package/dist/internals/fetcher.cjs.map +1 -1
- package/dist/internals/fetcher.d.cts +1 -1
- package/dist/internals/fetcher.d.ts +1 -1
- package/dist/internals/fetcher.js.map +1 -1
- package/dist/internals/helpers/array.cjs.map +1 -1
- package/dist/internals/helpers/array.js.map +1 -1
- package/dist/internals/helpers/cancellation.cjs.map +1 -1
- package/dist/internals/helpers/cancellation.js.map +1 -1
- package/dist/internals/helpers/counter.cjs.map +1 -1
- package/dist/internals/helpers/counter.js.map +1 -1
- package/dist/internals/helpers/general.cjs.map +1 -1
- package/dist/internals/helpers/general.js.map +1 -1
- package/dist/internals/helpers/hash.cjs.map +1 -1
- package/dist/internals/helpers/hash.js.map +1 -1
- package/dist/internals/helpers/map.cjs.map +1 -1
- package/dist/internals/helpers/map.js.map +1 -1
- package/dist/internals/helpers/math.cjs.map +1 -1
- package/dist/internals/helpers/math.js.map +1 -1
- package/dist/internals/helpers/object.cjs +7 -1
- package/dist/internals/helpers/object.cjs.map +1 -1
- package/dist/internals/helpers/object.js +7 -1
- package/dist/internals/helpers/object.js.map +1 -1
- package/dist/internals/helpers/paginate.cjs.map +1 -1
- package/dist/internals/helpers/paginate.js.map +1 -1
- package/dist/internals/helpers/promise.cjs.map +1 -1
- package/dist/internals/helpers/promise.js.map +1 -1
- package/dist/internals/helpers/prototype.cjs.map +1 -1
- package/dist/internals/helpers/prototype.js.map +1 -1
- package/dist/internals/helpers/retry.cjs.map +1 -1
- package/dist/internals/helpers/retry.js.map +1 -1
- package/dist/internals/helpers/retryable.cjs.map +1 -1
- package/dist/internals/helpers/retryable.js.map +1 -1
- package/dist/internals/helpers/schema.cjs.map +1 -1
- package/dist/internals/helpers/schema.d.cts +4 -4
- package/dist/internals/helpers/schema.d.ts +4 -4
- package/dist/internals/helpers/schema.js.map +1 -1
- package/dist/internals/helpers/stream.cjs.map +1 -1
- package/dist/internals/helpers/stream.js.map +1 -1
- package/dist/internals/helpers/string.cjs.map +1 -1
- package/dist/internals/helpers/string.js.map +1 -1
- package/dist/internals/helpers/weakRef.cjs.map +1 -1
- package/dist/internals/helpers/weakRef.js.map +1 -1
- package/dist/internals/serializable.cjs +3 -1
- package/dist/internals/serializable.cjs.map +1 -1
- package/dist/internals/serializable.d.cts +6 -0
- package/dist/internals/serializable.d.ts +6 -0
- package/dist/internals/serializable.js +3 -1
- package/dist/internals/serializable.js.map +1 -1
- package/dist/internals/types.cjs.map +1 -1
- package/dist/internals/types.js.map +1 -1
- package/dist/logger/logger.cjs.map +1 -1
- package/dist/logger/logger.d.cts +2 -2
- package/dist/logger/logger.d.ts +2 -2
- package/dist/logger/logger.js +2 -2
- package/dist/logger/logger.js.map +1 -1
- package/dist/logger/pretty.cjs.map +1 -1
- package/dist/logger/pretty.js.map +1 -1
- package/dist/memory/base.cjs.map +1 -1
- package/dist/memory/base.js.map +1 -1
- package/dist/memory/slidingMemory.cjs.map +1 -1
- package/dist/memory/slidingMemory.js.map +1 -1
- package/dist/memory/summarizeMemory.cjs.map +1 -1
- package/dist/memory/summarizeMemory.d.cts +2 -2
- package/dist/memory/summarizeMemory.d.ts +2 -2
- package/dist/memory/summarizeMemory.js.map +1 -1
- package/dist/memory/tokenMemory.cjs.map +1 -1
- package/dist/memory/tokenMemory.js.map +1 -1
- package/dist/memory/unconstrainedMemory.cjs.map +1 -1
- package/dist/memory/unconstrainedMemory.js.map +1 -1
- package/dist/middleware/streamToolCall.cjs.map +1 -1
- package/dist/middleware/streamToolCall.d.cts +2 -2
- package/dist/middleware/streamToolCall.d.ts +2 -2
- package/dist/middleware/streamToolCall.js.map +1 -1
- package/dist/middleware/trajectory.cjs.map +1 -1
- package/dist/middleware/trajectory.d.cts +2 -2
- package/dist/middleware/trajectory.d.ts +2 -2
- package/dist/middleware/trajectory.js.map +1 -1
- package/dist/parsers/errors.cjs.map +1 -1
- package/dist/parsers/errors.js.map +1 -1
- package/dist/parsers/field.cjs.map +1 -1
- package/dist/parsers/field.js.map +1 -1
- package/dist/parsers/linePrefix.cjs.map +1 -1
- package/dist/parsers/linePrefix.d.cts +1 -1
- package/dist/parsers/linePrefix.d.ts +1 -1
- package/dist/parsers/linePrefix.js.map +1 -1
- package/dist/serializer/error.cjs.map +1 -1
- package/dist/serializer/error.js.map +1 -1
- package/dist/serializer/serializer.cjs +16 -3
- package/dist/serializer/serializer.cjs.map +1 -1
- package/dist/serializer/serializer.d.cts +1 -1
- package/dist/serializer/serializer.d.ts +1 -1
- package/dist/serializer/serializer.js +16 -4
- package/dist/serializer/serializer.js.map +1 -1
- package/dist/serializer/utils.cjs.map +1 -1
- package/dist/serializer/utils.d.cts +1 -1
- package/dist/serializer/utils.d.ts +1 -1
- package/dist/serializer/utils.js.map +1 -1
- package/dist/{serializer-53t8gGQa.d.ts → serializer-BafOT48s.d.ts} +10 -4
- package/dist/{serializer-c51B2z6d.d.cts → serializer-CFDWYUco.d.cts} +10 -4
- package/dist/serve/server.cjs.map +1 -1
- package/dist/serve/server.js.map +1 -1
- package/dist/template.cjs.map +1 -1
- package/dist/template.js.map +1 -1
- package/dist/tools/arxiv.cjs.map +1 -1
- package/dist/tools/arxiv.d.cts +2 -2
- package/dist/tools/arxiv.d.ts +2 -2
- package/dist/tools/arxiv.js.map +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.d.cts +1 -1
- package/dist/tools/base.d.ts +1 -1
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/calculator.cjs.map +1 -1
- package/dist/tools/calculator.d.cts +3 -3
- package/dist/tools/calculator.d.ts +3 -3
- package/dist/tools/calculator.js.map +1 -1
- package/dist/tools/custom.cjs.map +1 -1
- package/dist/tools/custom.d.cts +3 -3
- package/dist/tools/custom.d.ts +3 -3
- package/dist/tools/custom.js.map +1 -1
- package/dist/tools/database/elasticsearch.cjs.map +1 -1
- package/dist/tools/database/elasticsearch.d.cts +3 -3
- package/dist/tools/database/elasticsearch.d.ts +3 -3
- package/dist/tools/database/elasticsearch.js.map +1 -1
- package/dist/tools/database/metadata.cjs.map +1 -1
- package/dist/tools/database/metadata.js.map +1 -1
- package/dist/tools/database/milvus.cjs.map +1 -1
- package/dist/tools/database/milvus.d.cts +3 -3
- package/dist/tools/database/milvus.d.ts +3 -3
- package/dist/tools/database/milvus.js.map +1 -1
- package/dist/tools/database/qdrant.cjs.map +1 -1
- package/dist/tools/database/qdrant.d.cts +2 -2
- package/dist/tools/database/qdrant.d.ts +2 -2
- package/dist/tools/database/qdrant.js.map +1 -1
- package/dist/tools/database/sql.cjs.map +1 -1
- package/dist/tools/database/sql.d.cts +2 -2
- package/dist/tools/database/sql.d.ts +2 -2
- package/dist/tools/database/sql.js.map +1 -1
- package/dist/tools/handoff.cjs.map +1 -1
- package/dist/tools/handoff.d.cts +2 -2
- package/dist/tools/handoff.d.ts +2 -2
- package/dist/tools/handoff.js.map +1 -1
- package/dist/tools/llm.cjs +1 -1
- package/dist/tools/llm.cjs.map +1 -1
- package/dist/tools/llm.d.cts +3 -3
- package/dist/tools/llm.d.ts +3 -3
- package/dist/tools/llm.js +1 -1
- package/dist/tools/llm.js.map +1 -1
- package/dist/tools/mcp.cjs.map +1 -1
- package/dist/tools/mcp.d.cts +2 -2
- package/dist/tools/mcp.d.ts +2 -2
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/openapi.cjs.map +1 -1
- package/dist/tools/openapi.d.cts +2 -2
- package/dist/tools/openapi.d.ts +2 -2
- package/dist/tools/openapi.js.map +1 -1
- package/dist/tools/python/output.cjs.map +1 -1
- package/dist/tools/python/output.d.cts +1 -1
- package/dist/tools/python/output.d.ts +1 -1
- package/dist/tools/python/output.js.map +1 -1
- package/dist/tools/python/python.cjs +5 -2
- package/dist/tools/python/python.cjs.map +1 -1
- package/dist/tools/python/python.d.cts +3 -3
- package/dist/tools/python/python.d.ts +3 -3
- package/dist/tools/python/python.js +5 -2
- package/dist/tools/python/python.js.map +1 -1
- package/dist/tools/python/storage.cjs.map +1 -1
- package/dist/tools/python/storage.js.map +1 -1
- package/dist/tools/search/base.cjs.map +1 -1
- package/dist/tools/search/base.d.cts +2 -2
- package/dist/tools/search/base.d.ts +2 -2
- package/dist/tools/search/base.js.map +1 -1
- package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.cts +2 -2
- package/dist/tools/search/duckDuckGoSearch.d.ts +2 -2
- package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
- package/dist/tools/search/googleSearch.cjs.map +1 -1
- package/dist/tools/search/googleSearch.d.cts +2 -2
- package/dist/tools/search/googleSearch.d.ts +2 -2
- package/dist/tools/search/googleSearch.js.map +1 -1
- package/dist/tools/search/searXNGSearch.cjs.map +1 -1
- package/dist/tools/search/searXNGSearch.d.cts +2 -2
- package/dist/tools/search/searXNGSearch.d.ts +2 -2
- package/dist/tools/search/searXNGSearch.js.map +1 -1
- package/dist/tools/search/wikipedia.cjs.map +1 -1
- package/dist/tools/search/wikipedia.d.cts +3 -3
- package/dist/tools/search/wikipedia.d.ts +3 -3
- package/dist/tools/search/wikipedia.js.map +1 -1
- package/dist/tools/similarity.cjs.map +1 -1
- package/dist/tools/similarity.d.cts +2 -2
- package/dist/tools/similarity.d.ts +2 -2
- package/dist/tools/similarity.js.map +1 -1
- package/dist/tools/think.cjs.map +1 -1
- package/dist/tools/think.d.cts +2 -2
- package/dist/tools/think.d.ts +2 -2
- package/dist/tools/think.js.map +1 -1
- package/dist/tools/weather/openMeteo.cjs.map +1 -1
- package/dist/tools/weather/openMeteo.d.cts +2 -2
- package/dist/tools/weather/openMeteo.d.ts +2 -2
- package/dist/tools/weather/openMeteo.js.map +1 -1
- package/dist/tools/web/webCrawler.cjs.map +1 -1
- package/dist/tools/web/webCrawler.d.cts +2 -2
- package/dist/tools/web/webCrawler.d.ts +2 -2
- package/dist/tools/web/webCrawler.js.map +1 -1
- package/dist/{types-YoNQSxQH.d.cts → types-BNsa3W7Z.d.cts} +4 -4
- package/dist/{types-YT-WdK3m.d.ts → types-DYtzF6ya.d.ts} +4 -4
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/workflows/agent.cjs.map +1 -1
- package/dist/workflows/agent.d.cts +40 -40
- package/dist/workflows/agent.d.ts +40 -40
- package/dist/workflows/agent.js.map +1 -1
- package/dist/workflows/workflow.cjs.map +1 -1
- package/dist/workflows/workflow.d.cts +1 -1
- package/dist/workflows/workflow.d.ts +1 -1
- package/dist/workflows/workflow.js.map +1 -1
- package/package.json +38 -15
package/dist/tools/arxiv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/arxiv.ts"],"names":["SortType","RELEVANCE","LAST_UPDATED_DATE","SUBMITTED_DATE","SortOrder","ASCENDING","DESCENDING","FilterType","ALL","TITLE","AUTHOR","ABSTRACT","COMMENT","JOURNAL_REFERENCE","SUBJECT_CATEGORY","REPORT_NUMBER","FilterTypeMapping","all","title","author","abstract","comment","journal_reference","subject_category","report_number","Separators","AND","OR","ANDNOT","ArXivToolOutput","JSONToolOutput","isEmpty","result","totalResults","entries","length","extractId","value","replace","ArXivTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","entrySchema","z","object","field","nativeEnum","default","string","min","ids","array","optional","search_query","include","nonempty","describe","exclude","start","number","int","maxResults","max","register","validateInput","schema","rawInput","ToolInputValidationError","_prepareParams","input","createURLParams","max_results","id_list","undefined","map","tag","join","filter","Boolean","sortBy","sortOrder","_run","_options","run","params","url","decodeURIComponent","toString","response","fetch","signal","data","_parseResponse","parser","XMLParser","allowBooleanAttributes","alwaysCreateTextNode","attributeNamePrefix","attributesGroupName","cdataPropName","ignoreAttributes","numberParseOptions","hex","leadingZeros","parseAttributeValue","parseTagValue","preserveOrder","removeNSPrefix","textNodeName","trimValues","ignoreDeclaration","text","parsedData","parse","ok","ToolError","Error","JSON","stringify","getProp","castArray","Math","startIndex","itemsPerPage","entry","pickBy","id","summary","published","updated","authors","affiliation","doi","journalReference","journal_ref","primaryCategory","primary_category","categories","category","links","link","isDefined"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA8BO,MAAMA,QAAAA,GAAW;EACtBC,SAAAA,EAAW,WAAA;EACXC,iBAAAA,EAAmB,iBAAA;EACnBC,cAAAA,EAAgB;AAClB;AAEO,MAAMC,SAAAA,GAAY;EACvBC,SAAAA,EAAW,WAAA;EACXC,UAAAA,EAAY;AACd;AAEO,MAAMC,UAAAA,GAAa;EACxBC,GAAAA,EAAK,KAAA;EACLC,KAAAA,EAAO,OAAA;EACPC,MAAAA,EAAQ,QAAA;EACRC,QAAAA,EAAU,UAAA;EACVC,OAAAA,EAAS,SAAA;EACTC,iBAAAA,EAAmB,mBAAA;EACnBC,gBAAAA,EAAkB,kBAAA;EAClBC,aAAAA,EAAe;AACjB;AAEA,MAAMC,iBAAAA,GAAgE;EACpEC,GAAAA,EAAK,KAAA;EACLC,KAAAA,EAAO,IAAA;EACPC,MAAAA,EAAQ,IAAA;EACRC,QAAAA,EAAU,KAAA;EACVC,OAAAA,EAAS,IAAA;EACTC,iBAAAA,EAAmB,IAAA;EACnBC,gBAAAA,EAAkB,KAAA;EAClBC,aAAAA,EAAe;AACjB,CAAA;AAEO,MAAMC,UAAAA,GAAa;EACxBC,GAAAA,EAAK,OAAA;EACLC,EAAAA,EAAI,MAAA;EACJC,MAAAA,EAAQ;AACV;AAsBO,MAAMC,wBAAwBC,cAAAA,CAAAA;AAAAA,EAAAA;;;EACnCC,OAAAA,GAAmB;AACjB,IAAA,OAAO,CAAC,IAAA,CAAKC,MAAAA,IAAU,IAAA,CAAKA,MAAAA,CAAOC,iBAAiB,CAAA,IAAK,IAAA,CAAKD,MAAAA,CAAOE,OAAAA,CAAQC,MAAAA,KAAW,CAAA;AAC1F;AACF;AAEA,MAAMC,SAAAA,mBAAY,MAAA,CAAA,CAACC,KAAAA,KACjBA,KAAAA,CACGC,QAAQ,wBAAA,EAA0B,EAAA,CAAA,CAClCA,OAAAA,CAAQ,0BAA0B,EAAA,CAAA,CAClCA,OAAAA,CAAQ,MAAA,EAAQ,EAAA,CAAA,EAJH,WAAA,CAAA;AAMX,MAAMC,kBAAkBC,IAAAA,CAAAA;AAAAA,EAAAA;;;EAC7BC,IAAAA,GAAO,OAAA;EACPC,WAAAA,GAAc,CAAA,0EAAA,CAAA;EAEEC,OAAAA,GAAyDC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC1FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA,QAAA;AAAU,MAAA;;IAC9BC,OAAAA,EAAS;GACX,CAAA;EAGAC,WAAAA,GAAc;AACZ,IAAA,MAAMC,WAAAA,GAAcC,EAAEC,MAAAA,CAAO;AAC3BC,MAAAA,KAAAA,EAAOF,EAAEG,UAAAA,CAAW/C,UAAAA,CAAAA,CAAYgD,OAAAA,CAAQhD,WAAWC,GAAG,CAAA;AACtD6B,MAAAA,KAAAA,EAAOc,CAAAA,CAAEK,MAAAA,EAAM,CAAGC,GAAAA,CAAI,CAAA;KACxB,CAAA;AAEA,IAAA,OAAON,EACJC,MAAAA,CAAO;MACNM,GAAAA,EAAKP,CAAAA,CAAEQ,MAAMR,CAAAA,CAAEK,MAAAA,GAASC,GAAAA,CAAI,CAAA,CAAA,CAAA,CAAIG,QAAAA,EAAQ;AACxCC,MAAAA,YAAAA,EAAcV,EACXC,MAAAA,CAAO;AACNU,QAAAA,OAAAA,EAASX,EAAEQ,KAAAA,CAAMT,WAAAA,EAAaa,QAAAA,EAAQ,CAAGC,SAAS,6BAAA,CAAA;AAClDC,QAAAA,OAAAA,EAASd,EAAEQ,KAAAA,CAAMT,WAAAA,EAAaU,QAAAA,EAAQ,CAAGI,SAAS,6BAAA;AACpD,OAAA,EACCJ,QAAAA,EAAQ;MACXM,KAAAA,EAAOf,CAAAA,CAAEgB,QAAM,CAAGC,GAAAA,GAAMX,GAAAA,CAAI,CAAA,CAAA,CAAGF,OAAAA,CAAQ,CAAA,CAAA;AACvCc,MAAAA,UAAAA,EAAYlB,CAAAA,CAAEgB,MAAAA,EAAM,CAAGC,GAAAA,EAAG,CAAGX,GAAAA,CAAI,CAAA,CAAA,CAAGa,GAAAA,CAAI,GAAA,CAAA,CAAKf,OAAAA,CAAQ,CAAA;KACvD,CAAA,CACCS,SAAS,mCAAA,CAAA;AACd;EAEA;AACE,IAAA,IAAA,CAAKO,QAAAA,EAAQ;AACf;AAEUC,EAAAA,aAAAA,CACRC,QACAC,QAAAA,EACqC;AACrC,IAAA,KAAA,CAAMF,aAAAA,CAAcC,QAAQC,QAAAA,CAAAA;AAC5B,IAAA,IAAI3C,OAAAA,CAAQ2C,SAAShB,GAAAA,IAAO,EAAE,CAAA,IAAK,CAACgB,SAASb,YAAAA,EAAc;AACzD,MAAA,MAAM,IAAIc,yBACR,CAAA,oFAAA,CAAsF,CAAA;AAE1F;AACF;AAEUC,EAAAA,cAAAA,CAAeC,KAAAA,EAA+B;AACtD,IAAA,OAAOC,eAAAA,CAAgB;AACrBZ,MAAAA,KAAAA,EAAOW,KAAAA,CAAMX,KAAAA;AACba,MAAAA,WAAAA,EAAaF,KAAAA,CAAMR,UAAAA;MACnBW,OAAAA,EAASjD,OAAAA,CAAQ8C,KAAAA,CAAMnB,GAAAA,IAAO,EAAE,IAAIuB,MAAAA,GAAYJ,KAAAA,CAAMnB,GAAAA,EAAKwB,GAAAA,CAAI9C,SAAAA,CAAAA;AAC/DyB,MAAAA,YAAAA,EACEgB,MAAMhB,YAAAA,IACN;AACEgB,QAAAA,KAAAA,CAAMhB,aAAaC,OAAAA,CAChBoB,GAAAA,CAAI,CAACC,GAAAA,KAAQ,GAAGnE,iBAAAA,CAAkBmE,GAAAA,CAAI9B,KAAK,CAAC,IAAI8B,GAAAA,CAAI9C,KAAK,EAAE,CAAA,CAC3D+C,IAAAA,CAAK3D,WAAWC,GAAG,CAAA;AACrBmD,QAAAA,CAAAA,KAAAA,CAAMhB,aAAaI,OAAAA,IAAW,IAC5BiB,GAAAA,CAAI,CAACC,QAAQ,CAAA,EAAGnE,iBAAAA,CAAkBmE,IAAI9B,KAAK,CAAC,IAAI8B,GAAAA,CAAI9C,KAAK,EAAE,CAAA,CAC3D+C,IAAAA,CAAK3D,WAAWG,MAAM;AAExByD,OAAAA,CAAAA,MAAAA,CAAOC,OAAAA,CAAAA,CACPF,IAAAA,CAAK3D,UAAAA,CAAWG,MAAM,CAAA;AAC3B2D,MAAAA,MAAAA,EAAQvF,QAAAA,CAASC,SAAAA;AACjBuF,MAAAA,SAAAA,EAAWpF,SAAAA,CAAUE;KACvB,CAAA;AACF;EAEA,MAAgBmF,IAAAA,CACdZ,KAAAA,EACAa,QAAAA,EACAC,GAAAA,EACA;AACA,IAAA,MAAMC,MAAAA,GAAS,IAAA,CAAKhB,cAAAA,CAAeC,KAAAA,CAAAA;AACnC,IAAA,MAAMgB,MAAM,CAAA,mCAAA,EAAsCC,kBAAAA,CAAmBF,MAAAA,CAAOG,QAAAA,EAAQ,CAAA,CAAA,CAAA;AACpF,IAAA,MAAMC,QAAAA,GAAW,MAAMC,KAAAA,CAAMJ,GAAAA,EAAK;AAChCK,MAAAA,MAAAA,EAAQP,GAAAA,CAAIO;KACd,CAAA;AACA,IAAA,MAAMC,IAAAA,GAAO,MAAM,IAAA,CAAKC,cAAAA,CAAeJ,QAAAA,CAAAA;AACvC,IAAA,OAAO,IAAInE,gBAAgBsE,IAAAA,CAAAA;AAC7B;AAEA,EAAA,MAAgBC,eAAeJ,QAAAA,EAA4C;AACzE,IAAA,MAAMK,MAAAA,GAAS,IAAIC,SAAAA,CAAU;MAC3BC,sBAAAA,EAAwB,IAAA;MACxBC,oBAAAA,EAAsB,KAAA;MACtBC,mBAAAA,EAAqB,IAAA;MACrBC,mBAAAA,EAAqB,KAAA;MACrBC,aAAAA,EAAe,QAAA;MACfC,gBAAAA,EAAkB,IAAA;MAClBC,kBAAAA,EAAoB;QAAEC,GAAAA,EAAK,KAAA;QAAOC,YAAAA,EAAc;AAAK,OAAA;MACrDC,mBAAAA,EAAqB,KAAA;MACrBC,aAAAA,EAAe,IAAA;MACfC,aAAAA,EAAe,KAAA;MACfC,cAAAA,EAAgB,IAAA;MAChBC,YAAAA,EAAc,OAAA;MACdC,UAAAA,EAAY,IAAA;MACZC,iBAAAA,EAAmB;KACrB,CAAA;AAEA,IAAA,MAAMC,IAAAA,GAAO,MAAMvB,QAAAA,CAASuB,IAAAA,EAAI;AAChC,IAAA,MAAMC,UAAAA,GAAanB,MAAAA,CAAOoB,KAAAA,CAAMF,IAAAA,CAAAA;AAEhC,IAAA,IAAI,CAACvB,SAAS0B,EAAAA,EAAI;AAChB,MAAA,MAAM,IAAIC,UAAU,kCAAA,EAAoC;AACtD,QAAA,IAAIC,KAAAA,CAAMC,IAAAA,CAAKC,SAAAA,CAAUC,OAAAA,CAAQP,UAAAA,EAAY;AAAC,UAAA,MAAA;AAAQ,UAAA;WAAUA,UAAAA,CAAAA,EAAa,IAAA,EAAM,CAAA,CAAA;AACpF,OAAA,CAAA;AACH;AAEA,IAAA,IAAItF,OAAAA,GAAiC6F,QAAQP,UAAAA,EAAY;AAAC,MAAA,MAAA;AAAQ,MAAA;AAAU,KAAA,EAAA,EAAE,CAAA;AAC9EtF,IAAAA,OAAAA,GAAU8F,UAAU9F,OAAAA,CAAAA;AAEpB,IAAA,OAAO;MACLD,YAAAA,EAAcgG,IAAAA,CAAK3D,GAAAA,CAAIyD,OAAAA,CAAQP,UAAAA,EAAY;AAAC,QAAA,MAAA;AAAQ,QAAA;SAAiB,CAAA,CAAA,EAAItF,QAAQC,MAAM,CAAA;AACvF+F,MAAAA,UAAAA,EAAYH,QAAQP,UAAAA,EAAY;AAAC,QAAA,MAAA;AAAQ,QAAA;SAAe,CAAA,CAAA;AACxDW,MAAAA,YAAAA,EAAcJ,QAAQP,UAAAA,EAAY;AAAC,QAAA,MAAA;AAAQ,QAAA;SAAiB,CAAA,CAAA;AAC5DtF,MAAAA,OAAAA,EAASA,OAAAA,CAAQgD,GAAAA,CAAI,CAACkD,KAAAA,KACpBC,MAAAA,CACE;QACEC,EAAAA,EAAIlG,SAAAA,CAAUgG,MAAME,EAAE,CAAA;AACtBzC,QAAAA,GAAAA,EAAKuC,KAAAA,CAAME,EAAAA;AACXpH,QAAAA,KAAAA,EAAOkH,KAAAA,CAAMlH,KAAAA;AACbqH,QAAAA,OAAAA,EAASH,KAAAA,CAAMG,OAAAA;AACfC,QAAAA,SAAAA,EAAWJ,KAAAA,CAAMI,SAAAA;AACjBC,QAAAA,OAAAA,EAASL,KAAAA,CAAMK,OAAAA;QACfC,OAAAA,EAASV,SAAAA,CAAUI,MAAMjH,MAAM,CAAA,CAC5BkE,OAAOC,OAAAA,CAAAA,CACPJ,GAAAA,CAAI,CAAC/D,MAAAA,MAAiB;AACrBsB,UAAAA,IAAAA,EAAMtB,MAAAA,CAAOsB,IAAAA;AACbkG,UAAAA,WAAAA,EAAaX,SAAAA,CAAU7G,MAAAA,CAAOwH,WAAAA,IAAe,EAAE;SACjD,CAAA,CAAA;AACFC,QAAAA,GAAAA,EAAKR,KAAAA,CAAMQ,GAAAA;AACXvH,QAAAA,OAAAA,EAAS+G,KAAAA,CAAM/G,OAAAA;AACfwH,QAAAA,gBAAAA,EAAkBT,KAAAA,CAAMU,WAAAA;AACxBC,QAAAA,eAAAA,EAAiBX,KAAAA,CAAMY,gBAAAA;AACvBC,QAAAA,UAAAA,EAAYjB,SAAAA,CAAUI,KAAAA,CAAMc,QAAQ,CAAA,CAAE7D,OAAOC,OAAAA,CAAAA;AAC7C6D,QAAAA,KAAAA,EAAOnB,SAAAA,CAAUI,KAAAA,CAAMgB,IAAI,CAAA,CAAE/D,OAAOC,OAAAA;AACtC,OAAA,EACA+D,SAAAA,CAAAA;AAGN,KAAA;AACF;AACF","file":"arxiv.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolError,\n ToolInput,\n ToolInputValidationError,\n} from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { isDefined, isEmpty, pickBy } from \"remeda\";\nimport { castArray } from \"@/internals/helpers/array.js\";\nimport { ValueOf } from \"@/internals/types.js\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\ntype ToolOptions = BaseToolOptions;\ntype ToolRunOptions = BaseToolRunOptions;\n\nexport const SortType = {\n RELEVANCE: \"relevance\",\n LAST_UPDATED_DATE: \"lastUpdatedDate\",\n SUBMITTED_DATE: \"submittedDate\",\n} as const;\n\nexport const SortOrder = {\n ASCENDING: \"ascending\",\n DESCENDING: \"descending\",\n} as const;\n\nexport const FilterType = {\n ALL: \"all\",\n TITLE: \"title\",\n AUTHOR: \"author\",\n ABSTRACT: \"abstract\",\n COMMENT: \"comment\",\n JOURNAL_REFERENCE: \"journal_reference\",\n SUBJECT_CATEGORY: \"subject_category\",\n REPORT_NUMBER: \"report_number\",\n} as const;\n\nconst FilterTypeMapping: Record<ValueOf<typeof FilterType>, string> = {\n all: \"all\",\n title: \"ti\",\n author: \"au\",\n abstract: \"abs\",\n comment: \"co\",\n journal_reference: \"jr\",\n subject_category: \"cat\",\n report_number: \"rn\",\n};\n\nexport const Separators = {\n AND: \"+AND+\",\n OR: \"+OR+\",\n ANDNOT: \"+ANDNOT+\",\n} as const;\n\nexport interface ArXivResponse {\n totalResults: number;\n startIndex: number;\n itemsPerPage: number;\n entries: {\n id: string;\n title: string;\n summary: string;\n published: string;\n updated: string;\n authors: { name: string; affiliation: string[] }[];\n doi: string;\n comment: string;\n journalReference: string;\n primaryCategory: string;\n categories: string[];\n links: string[];\n }[];\n}\n\nexport class ArXivToolOutput extends JSONToolOutput<ArXivResponse> {\n isEmpty(): boolean {\n return !this.result || this.result.totalResults === 0 || this.result.entries.length === 0;\n }\n}\n\nconst extractId = (value: string) =>\n value\n .replace(\"https://arxiv.org/abs/\", \"\")\n .replace(\"https://arxiv.org/pdf/\", \"\")\n .replace(/v\\d$/, \"\");\n\nexport class ArXivTool extends Tool<ArXivToolOutput, ToolOptions, ToolRunOptions> {\n name = \"ArXiv\";\n description = `Retrieves research articles published on arXiv including related metadata.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, ArXivToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"search\", \"arxiv\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n const entrySchema = z.object({\n field: z.nativeEnum(FilterType).default(FilterType.ALL),\n value: z.string().min(1),\n });\n\n return z\n .object({\n ids: z.array(z.string().min(1)).optional(),\n search_query: z\n .object({\n include: z.array(entrySchema).nonempty().describe(\"Filters to include results.\"),\n exclude: z.array(entrySchema).optional().describe(\"Filters to exclude results.\"),\n })\n .optional(),\n start: z.number().int().min(0).default(0),\n maxResults: z.number().int().min(1).max(100).default(5),\n })\n .describe(\"Sorting by date is not supported.\");\n }\n\n static {\n this.register();\n }\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n rawInput: unknown,\n ): asserts rawInput is ToolInput<this> {\n super.validateInput(schema, rawInput);\n if (isEmpty(rawInput.ids ?? []) && !rawInput.search_query) {\n throw new ToolInputValidationError(\n `The 'search_query' property must be non-empty if the 'ids' property is not provided!`,\n );\n }\n }\n\n protected _prepareParams(input: ToolInput<typeof this>) {\n return createURLParams({\n start: input.start,\n max_results: input.maxResults,\n id_list: isEmpty(input.ids ?? []) ? undefined : input.ids?.map(extractId),\n search_query:\n input.search_query &&\n [\n input.search_query.include\n .map((tag) => `${FilterTypeMapping[tag.field]}:${tag.value}`)\n .join(Separators.AND),\n (input.search_query.exclude ?? [])\n .map((tag) => `${FilterTypeMapping[tag.field]}:${tag.value}`)\n .join(Separators.ANDNOT),\n ]\n .filter(Boolean)\n .join(Separators.ANDNOT),\n sortBy: SortType.RELEVANCE,\n sortOrder: SortOrder.DESCENDING,\n });\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const params = this._prepareParams(input);\n const url = `https://export.arxiv.org/api/query?${decodeURIComponent(params.toString())}`;\n const response = await fetch(url, {\n signal: run.signal,\n });\n const data = await this._parseResponse(response);\n return new ArXivToolOutput(data);\n }\n\n protected async _parseResponse(response: Response): Promise<ArXivResponse> {\n const parser = new XMLParser({\n allowBooleanAttributes: true,\n alwaysCreateTextNode: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n cdataPropName: \"#cdata\",\n ignoreAttributes: true,\n numberParseOptions: { hex: false, leadingZeros: true },\n parseAttributeValue: false,\n parseTagValue: true,\n preserveOrder: false,\n removeNSPrefix: true,\n textNodeName: \"#text\",\n trimValues: true,\n ignoreDeclaration: true,\n });\n\n const text = await response.text();\n const parsedData = parser.parse(text);\n\n if (!response.ok) {\n throw new ToolError(\"Request to ArXiv API has failed!\", [\n new Error(JSON.stringify(getProp(parsedData, [\"feed\", \"entry\"], parsedData), null, 2)),\n ]);\n }\n\n let entries: Record<string, any>[] = getProp(parsedData, [\"feed\", \"entry\"], []);\n entries = castArray(entries);\n\n return {\n totalResults: Math.max(getProp(parsedData, [\"feed\", \"totalResults\"], 0), entries.length),\n startIndex: getProp(parsedData, [\"feed\", \"startIndex\"], 0),\n itemsPerPage: getProp(parsedData, [\"feed\", \"itemsPerPage\"], 0),\n entries: entries.map((entry) =>\n pickBy(\n {\n id: extractId(entry.id),\n url: entry.id,\n title: entry.title,\n summary: entry.summary,\n published: entry.published,\n updated: entry.updated,\n authors: castArray(entry.author)\n .filter(Boolean)\n .map((author: any) => ({\n name: author.name,\n affiliation: castArray(author.affiliation ?? []),\n })),\n doi: entry.doi,\n comment: entry.comment,\n journalReference: entry.journal_ref,\n primaryCategory: entry.primary_category,\n categories: castArray(entry.category).filter(Boolean),\n links: castArray(entry.link).filter(Boolean),\n },\n isDefined,\n ),\n ),\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tools/arxiv.ts"],"names":["SortType","RELEVANCE","LAST_UPDATED_DATE","SUBMITTED_DATE","SortOrder","ASCENDING","DESCENDING","FilterType","ALL","TITLE","AUTHOR","ABSTRACT","COMMENT","JOURNAL_REFERENCE","SUBJECT_CATEGORY","REPORT_NUMBER","FilterTypeMapping","all","title","author","abstract","comment","journal_reference","subject_category","report_number","Separators","AND","OR","ANDNOT","ArXivToolOutput","JSONToolOutput","isEmpty","result","totalResults","entries","length","extractId","value","replace","ArXivTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","entrySchema","z","object","field","nativeEnum","default","string","min","ids","array","optional","search_query","include","nonempty","describe","exclude","start","number","int","maxResults","max","register","validateInput","schema","rawInput","ToolInputValidationError","_prepareParams","input","createURLParams","max_results","id_list","undefined","map","tag","join","filter","Boolean","sortBy","sortOrder","_run","_options","run","params","url","decodeURIComponent","toString","response","fetch","signal","data","_parseResponse","parser","XMLParser","allowBooleanAttributes","alwaysCreateTextNode","attributeNamePrefix","attributesGroupName","cdataPropName","ignoreAttributes","numberParseOptions","hex","leadingZeros","parseAttributeValue","parseTagValue","preserveOrder","removeNSPrefix","textNodeName","trimValues","ignoreDeclaration","text","parsedData","parse","ok","ToolError","Error","JSON","stringify","getProp","castArray","Math","startIndex","itemsPerPage","entry","pickBy","id","summary","published","updated","authors","affiliation","doi","journalReference","journal_ref","primaryCategory","primary_category","categories","category","links","link","isDefined"],"mappings":"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","file":"arxiv.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolError,\n ToolInput,\n ToolInputValidationError,\n} from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { isDefined, isEmpty, pickBy } from \"remeda\";\nimport { castArray } from \"@/internals/helpers/array.js\";\nimport { ValueOf } from \"@/internals/types.js\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\ntype ToolOptions = BaseToolOptions;\ntype ToolRunOptions = BaseToolRunOptions;\n\nexport const SortType = {\n RELEVANCE: \"relevance\",\n LAST_UPDATED_DATE: \"lastUpdatedDate\",\n SUBMITTED_DATE: \"submittedDate\",\n} as const;\n\nexport const SortOrder = {\n ASCENDING: \"ascending\",\n DESCENDING: \"descending\",\n} as const;\n\nexport const FilterType = {\n ALL: \"all\",\n TITLE: \"title\",\n AUTHOR: \"author\",\n ABSTRACT: \"abstract\",\n COMMENT: \"comment\",\n JOURNAL_REFERENCE: \"journal_reference\",\n SUBJECT_CATEGORY: \"subject_category\",\n REPORT_NUMBER: \"report_number\",\n} as const;\n\nconst FilterTypeMapping: Record<ValueOf<typeof FilterType>, string> = {\n all: \"all\",\n title: \"ti\",\n author: \"au\",\n abstract: \"abs\",\n comment: \"co\",\n journal_reference: \"jr\",\n subject_category: \"cat\",\n report_number: \"rn\",\n};\n\nexport const Separators = {\n AND: \"+AND+\",\n OR: \"+OR+\",\n ANDNOT: \"+ANDNOT+\",\n} as const;\n\nexport interface ArXivResponse {\n totalResults: number;\n startIndex: number;\n itemsPerPage: number;\n entries: {\n id: string;\n title: string;\n summary: string;\n published: string;\n updated: string;\n authors: { name: string; affiliation: string[] }[];\n doi: string;\n comment: string;\n journalReference: string;\n primaryCategory: string;\n categories: string[];\n links: string[];\n }[];\n}\n\nexport class ArXivToolOutput extends JSONToolOutput<ArXivResponse> {\n isEmpty(): boolean {\n return !this.result || this.result.totalResults === 0 || this.result.entries.length === 0;\n }\n}\n\nconst extractId = (value: string) =>\n value\n .replace(\"https://arxiv.org/abs/\", \"\")\n .replace(\"https://arxiv.org/pdf/\", \"\")\n .replace(/v\\d$/, \"\");\n\nexport class ArXivTool extends Tool<ArXivToolOutput, ToolOptions, ToolRunOptions> {\n name = \"ArXiv\";\n description = `Retrieves research articles published on arXiv including related metadata.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, ArXivToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"search\", \"arxiv\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n const entrySchema = z.object({\n field: z.nativeEnum(FilterType).default(FilterType.ALL),\n value: z.string().min(1),\n });\n\n return z\n .object({\n ids: z.array(z.string().min(1)).optional(),\n search_query: z\n .object({\n include: z.array(entrySchema).nonempty().describe(\"Filters to include results.\"),\n exclude: z.array(entrySchema).optional().describe(\"Filters to exclude results.\"),\n })\n .optional(),\n start: z.number().int().min(0).default(0),\n maxResults: z.number().int().min(1).max(100).default(5),\n })\n .describe(\"Sorting by date is not supported.\");\n }\n\n static {\n this.register();\n }\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n rawInput: unknown,\n ): asserts rawInput is ToolInput<this> {\n super.validateInput(schema, rawInput);\n if (isEmpty(rawInput.ids ?? []) && !rawInput.search_query) {\n throw new ToolInputValidationError(\n `The 'search_query' property must be non-empty if the 'ids' property is not provided!`,\n );\n }\n }\n\n protected _prepareParams(input: ToolInput<typeof this>) {\n return createURLParams({\n start: input.start,\n max_results: input.maxResults,\n id_list: isEmpty(input.ids ?? []) ? undefined : input.ids?.map(extractId),\n search_query:\n input.search_query &&\n [\n input.search_query.include\n .map((tag) => `${FilterTypeMapping[tag.field]}:${tag.value}`)\n .join(Separators.AND),\n (input.search_query.exclude ?? [])\n .map((tag) => `${FilterTypeMapping[tag.field]}:${tag.value}`)\n .join(Separators.ANDNOT),\n ]\n .filter(Boolean)\n .join(Separators.ANDNOT),\n sortBy: SortType.RELEVANCE,\n sortOrder: SortOrder.DESCENDING,\n });\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const params = this._prepareParams(input);\n const url = `https://export.arxiv.org/api/query?${decodeURIComponent(params.toString())}`;\n const response = await fetch(url, {\n signal: run.signal,\n });\n const data = await this._parseResponse(response);\n return new ArXivToolOutput(data);\n }\n\n protected async _parseResponse(response: Response): Promise<ArXivResponse> {\n const parser = new XMLParser({\n allowBooleanAttributes: true,\n alwaysCreateTextNode: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n cdataPropName: \"#cdata\",\n ignoreAttributes: true,\n numberParseOptions: { hex: false, leadingZeros: true },\n parseAttributeValue: false,\n parseTagValue: true,\n preserveOrder: false,\n removeNSPrefix: true,\n textNodeName: \"#text\",\n trimValues: true,\n ignoreDeclaration: true,\n });\n\n const text = await response.text();\n const parsedData = parser.parse(text);\n\n if (!response.ok) {\n throw new ToolError(\"Request to ArXiv API has failed!\", [\n new Error(JSON.stringify(getProp(parsedData, [\"feed\", \"entry\"], parsedData), null, 2)),\n ]);\n }\n\n let entries: Record<string, any>[] = getProp(parsedData, [\"feed\", \"entry\"], []);\n entries = castArray(entries);\n\n return {\n totalResults: Math.max(getProp(parsedData, [\"feed\", \"totalResults\"], 0), entries.length),\n startIndex: getProp(parsedData, [\"feed\", \"startIndex\"], 0),\n itemsPerPage: getProp(parsedData, [\"feed\", \"itemsPerPage\"], 0),\n entries: entries.map((entry) =>\n pickBy(\n {\n id: extractId(entry.id),\n url: entry.id,\n title: entry.title,\n summary: entry.summary,\n published: entry.published,\n updated: entry.updated,\n authors: castArray(entry.author)\n .filter(Boolean)\n .map((author: any) => ({\n name: author.name,\n affiliation: castArray(author.affiliation ?? []),\n })),\n doi: entry.doi,\n comment: entry.comment,\n journalReference: entry.journal_ref,\n primaryCategory: entry.primary_category,\n categories: castArray(entry.category).filter(Boolean),\n links: castArray(entry.link).filter(Boolean),\n },\n isDefined,\n ),\n ),\n };\n }\n}\n"]}
|
package/dist/tools/base.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/base.ts"],"names":["ToolError","FrameworkError","ToolInputValidationError","validationErrors","message","ToolOutput","Serializable","toString","getTextContent","StringToolOutput","result","ctx","register","isEmpty","createSnapshot","loadSnapshot","snapshot","Object","assign","cacheKey","WeakRefKeyFn","from","self","JSONToolOutput","R","JSON","stringify","Tool","cache","options","contextKeys","Memory","Symbol","args","NullCache","toError","e","context","name","run","input","shallowCopy","RunContext","enter","signal","params","meta","errorPropagated","ref","parse","output","Retryable","executor","emitter","emit","enabled","_runCached","_run","onError","error","fatalErrors","some","cls","onRetry","_","config","_createRetryOptions","retryOptions","get","key","ObjectHashKeyFn","omit","cacheEntry","undefined","task","Task","set","then","req","resolve","catch","err","reject","delete","clearCache","clear","getInputJsonSchema","toJsonSchema","inputSchema","isTool","value","overrides","defaultOptions","maxRetries","factor","pipe","filter","isTruthy","map","pickBy","isDefined","mergeAll","schema","validateSchema","tool","hint","validateInput","isFatal","isRetryable","copy","preprocessInput","rawInput","validator","createSchemaValidator","success","errors","join","description","mapper","DynamicTool","handler","selfOutput","wrappedInput","extend","_inputSchema","fields","validate","z","object","string","refine","val","test","union","instanceof","ZodSchema","passthrough","function","optional","Emitter","root","child","namespace","toCamelCase","creator","arg"],"mappings":"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","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FrameworkError } from \"@/errors.js\";\nimport * as R from \"remeda\";\nimport { Retryable, RetryableConfig } from \"@/internals/helpers/retryable.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { Task } from \"promise-based-task\";\nimport { Cache, ObjectHashKeyFn, WeakRefKeyFn } from \"@/cache/decoratorCache.js\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { NullCache } from \"@/cache/nullCache.js\";\nimport type { ErrorObject, ValidateFunction } from \"ajv\";\nimport {\n AnyToolSchemaLike,\n createSchemaValidator,\n FromSchemaLike,\n FromSchemaLikeRaw,\n toJsonSchema,\n validateSchema,\n} from \"@/internals/helpers/schema.js\";\nimport { validate } from \"@/internals/helpers/general.js\";\nimport { z, ZodSchema } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { Callback } from \"@/emitter/types.js\";\nimport { GetRunContext, RunContext } from \"@/context.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { toCamelCase } from \"remeda\";\n\nexport class ToolError extends FrameworkError {}\n\nexport class ToolInputValidationError extends ToolError {\n validationErrors: ErrorObject[];\n\n constructor(message: string, validationErrors: ErrorObject[] = []) {\n super(message, []);\n this.validationErrors = validationErrors;\n }\n}\n\nexport interface RetryOptions {\n maxRetries?: number;\n factor?: number;\n}\n\nexport interface BaseToolOptions<TOutput = any> {\n retryOptions?: RetryOptions;\n fatalErrors?: ErrorConstructor[];\n cache?: BaseCache<Task<TOutput>> | false;\n}\n\nexport interface BaseToolRunOptions {\n retryOptions?: RetryOptions;\n signal?: AbortSignal;\n}\n\nexport abstract class ToolOutput extends Serializable {\n abstract getTextContent(): string;\n abstract isEmpty(): boolean;\n\n toString() {\n return this.getTextContent();\n }\n}\n\nexport class StringToolOutput extends ToolOutput {\n constructor(\n public readonly result = \"\",\n public readonly ctx?: Record<string, any>,\n ) {\n super();\n this.result = result ?? \"\";\n }\n\n static {\n this.register();\n }\n\n isEmpty() {\n return !this.result;\n }\n\n @Cache({\n cacheKey: WeakRefKeyFn.from<StringToolOutput>((self) => [self.result]),\n })\n getTextContent(): string {\n return this.result.toString();\n }\n\n createSnapshot() {\n return {\n result: this.result,\n ctx: this.ctx,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class JSONToolOutput<T> extends ToolOutput {\n constructor(\n public readonly result: T,\n public readonly ctx?: Record<string, any>,\n ) {\n super();\n }\n\n static {\n this.register();\n }\n\n isEmpty() {\n return !this.result || R.isEmpty(this.result);\n }\n\n getTextContent(): string {\n return JSON.stringify(this.result);\n }\n\n createSnapshot() {\n return {\n result: this.result,\n ctx: this.ctx,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport interface ToolSnapshot<TOutput extends ToolOutput, TOptions extends BaseToolOptions> {\n name: string;\n description: string;\n options: TOptions;\n cache: BaseCache<Task<TOutput>>;\n emitter: Emitter<any>;\n}\n\nexport type InferToolOutput<T extends AnyTool> = T extends Tool<infer A, any, any> ? A : never;\nexport type ToolInput<T extends AnyTool> = FromSchemaLike<Awaited<ReturnType<T[\"inputSchema\"]>>>;\nexport type ToolInputRaw<T extends AnyTool> = FromSchemaLikeRaw<\n Awaited<ReturnType<T[\"inputSchema\"]>>\n>;\n\ntype ToolConstructorParameters<TOptions extends BaseToolOptions> =\n Partial<TOptions> extends TOptions ? [options?: TOptions] : [options: TOptions];\n\nexport interface ToolEvents<\n TInput extends Record<string, any> = Record<string, any>,\n TOutput extends ToolOutput = ToolOutput,\n> {\n start: Callback<{ input: TInput; options: unknown }>;\n success: Callback<{ output: TOutput; input: TInput; options: unknown }>;\n error: Callback<{ input: TInput; error: ToolError | ToolInputValidationError; options: unknown }>;\n retry: Callback<{ error: ToolError | ToolInputValidationError; input: TInput; options: unknown }>;\n finish: Callback<null>;\n}\n\nexport type ToolEmitter<\n A extends Record<string, any>,\n B extends ToolOutput,\n C = Record<never, never>,\n> = Emitter<ToolEvents<A, B> & Omit<C, keyof ToolEvents>>;\n\nexport abstract class Tool<\n TOutput extends ToolOutput = ToolOutput,\n TOptions extends BaseToolOptions = BaseToolOptions,\n TRunOptions extends BaseToolRunOptions = BaseToolRunOptions,\n> extends Serializable {\n abstract name: string;\n abstract description: string;\n\n public readonly cache: BaseCache<Task<TOutput>>;\n public readonly options: TOptions;\n\n public static contextKeys = {\n Memory: Symbol(\"Memory\"),\n } as const;\n\n public abstract readonly emitter: Emitter<ToolEvents<any, TOutput>>;\n\n abstract inputSchema(): Promise<AnyToolSchemaLike> | AnyToolSchemaLike;\n\n constructor(...args: ToolConstructorParameters<TOptions>) {\n super();\n\n const [options] = args;\n this.options = options ?? ({} as TOptions);\n this.cache = options?.cache ? options.cache : new NullCache();\n }\n\n protected toError(e: Error, context: any) {\n if (e instanceof ToolError) {\n Object.assign(e.context, context);\n return e;\n } else {\n return new ToolError(`Tool \"${this.name}\" has occurred an error!`, [e], {\n context,\n });\n }\n }\n\n run(input: ToolInputRaw<this>, options: Partial<TRunOptions> = {}) {\n input = shallowCopy(input);\n options = shallowCopy(options);\n\n return RunContext.enter(\n this,\n { signal: options?.signal, params: [input, options] as const },\n async (run) => {\n const meta = { input, options };\n let errorPropagated = false;\n\n try {\n input = Object.assign({ ref: input }, { ref: await this.parse(input) }).ref;\n\n const output = await new Retryable({\n executor: async () => {\n errorPropagated = false;\n await run.emitter.emit(\"start\", { ...meta });\n return this.cache.enabled\n ? await this._runCached(input, options, run)\n : await this._run(input, options, run);\n },\n onError: async (error) => {\n errorPropagated = true;\n await run.emitter.emit(\"error\", {\n error: this.toError(error, meta),\n ...meta,\n });\n if (this.options.fatalErrors?.some((cls) => error instanceof cls)) {\n throw error;\n }\n },\n onRetry: async (_, error) => {\n await run.emitter.emit(\"retry\", { ...meta, error: this.toError(error, meta) });\n },\n config: {\n ...this._createRetryOptions(options?.retryOptions),\n signal: options?.signal,\n },\n }).get();\n\n await run.emitter.emit(\"success\", { output, ...meta });\n return output;\n } catch (e) {\n const error = this.toError(e, meta);\n if (!errorPropagated) {\n await run.emitter.emit(\"error\", {\n error,\n options,\n input,\n });\n }\n throw error;\n } finally {\n await run.emitter.emit(\"finish\", null);\n }\n },\n );\n }\n\n protected async _runCached(\n input: ToolInput<this>,\n options: Partial<TRunOptions>,\n run: GetRunContext<this>,\n ): Promise<TOutput> {\n const key = ObjectHashKeyFn({\n input,\n options: R.omit(options ?? ({} as TRunOptions), [\"signal\", \"retryOptions\"]),\n });\n\n const cacheEntry = await this.cache.get(key);\n if (cacheEntry !== undefined) {\n return cacheEntry!;\n }\n\n const task = new Task<TOutput, Error>();\n await this.cache.set(key, task);\n this._run(input, options, run)\n .then((req) => task.resolve(req))\n .catch(async (err) => {\n void task.reject(err);\n await this.cache.delete(key);\n });\n return task;\n }\n\n public async clearCache() {\n await this.cache.clear();\n }\n\n protected abstract _run(\n arg: ToolInput<this>,\n options: Partial<TRunOptions>,\n run: GetRunContext<typeof this>,\n ): Promise<TOutput>;\n\n async getInputJsonSchema() {\n return toJsonSchema(await this.inputSchema());\n }\n\n static isTool(value: unknown): value is Tool {\n return value instanceof Tool && \"name\" in value && \"description\" in value;\n }\n\n private _createRetryOptions(...overrides: (RetryOptions | undefined)[]): RetryableConfig {\n const defaultOptions: Required<RetryOptions> = {\n maxRetries: 0,\n factor: 1,\n };\n\n return R.pipe(\n [defaultOptions, this.options.retryOptions, ...overrides],\n R.filter(R.isTruthy),\n R.map((input: RetryOptions) => {\n const options: RetryableConfig = {\n maxRetries: input.maxRetries ?? defaultOptions.maxRetries,\n factor: input.factor ?? defaultOptions.maxRetries,\n };\n return R.pickBy(options, R.isDefined);\n }),\n R.mergeAll,\n ) as RetryableConfig;\n }\n\n async parse(input: unknown | ToolInputRaw<this> | ToolInput<this>): Promise<ToolInput<this>> {\n const schema = await this.inputSchema();\n if (schema) {\n validateSchema(schema, {\n context: {\n tool: this.constructor.name,\n hint: `To do post-validation override the '${this.validateInput.name}' method.`,\n schema,\n isFatal: true,\n isRetryable: false,\n },\n });\n }\n\n const copy = shallowCopy(input);\n this.preprocessInput(copy);\n this.validateInput(schema, copy);\n return copy;\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n protected preprocessInput(rawInput: unknown): void {}\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n rawInput: unknown,\n ): asserts rawInput is ToolInput<this> {\n const validator = createSchemaValidator(schema) as ValidateFunction<ToolInput<this>>;\n const success = validator(rawInput);\n if (!success) {\n throw new ToolInputValidationError(\n [\n `The received tool input does not match the expected schema.`,\n `Input Schema: \"${JSON.stringify(toJsonSchema(schema))}\"`,\n `Validation Errors: ${JSON.stringify(validator.errors)}`,\n ].join(\"\\n\"),\n // ts doesn't infer that when success is false `validator.errors` is defined\n validator.errors!,\n );\n }\n }\n\n createSnapshot(): ToolSnapshot<TOutput, TOptions> {\n return {\n name: this.name,\n description: this.description,\n cache: this.cache,\n options: shallowCopy(this.options),\n emitter: this.emitter,\n };\n }\n\n loadSnapshot(snapshot: ToolSnapshot<TOutput, TOptions>): void {\n Object.assign(this, snapshot);\n }\n\n pipe<S extends AnyTool, T extends AnyTool>(\n this: S,\n tool: T,\n mapper: (\n input: ToolInputRaw<S>,\n output: TOutput,\n options: Partial<TRunOptions>,\n run: RunContext<\n DynamicTool<TOutput, ZodSchema<ToolInput<S>>, TOptions, TRunOptions, ToolInput<S>>\n >,\n ) => ToolInputRaw<typeof tool>,\n ) {\n return new DynamicTool<TOutput, ZodSchema<ToolInput<S>>, TOptions, TRunOptions, ToolInput<S>>({\n name: this.name,\n description: this.description,\n options: this.options,\n inputSchema: this.inputSchema() as ZodSchema<ToolInput<S>>,\n handler: async (input: ToolInputRaw<S>, options, run): Promise<TOutput> => {\n const selfOutput = await this.run(input, options);\n const wrappedInput = mapper(input, selfOutput, options, run);\n return await tool.run(wrappedInput);\n },\n } as const);\n }\n\n extend<S extends AnyTool, TS extends ZodSchema>(\n this: S,\n schema: TS,\n mapper: (\n input: z.output<TS>,\n options: Partial<TRunOptions>,\n run: RunContext<DynamicTool<TOutput, TS, TOptions, TRunOptions, z.output<TS>>>,\n ) => ToolInputRaw<S>,\n overrides: {\n name?: string;\n description?: string;\n } = {},\n ) {\n return new DynamicTool<TOutput, TS, TOptions, TRunOptions, z.output<TS>>({\n name: overrides?.name || this.name,\n description: overrides?.name || this.description,\n options: shallowCopy(this.options),\n inputSchema: schema,\n handler: async (input: ToolInputRaw<S>, options, run): Promise<TOutput> => {\n const wrappedInput = mapper(input, options, run);\n return await this.run(wrappedInput, options);\n },\n } as const);\n }\n}\n\nexport type AnyTool = Tool<any, any, any>;\nexport type AnyToolClass = abstract new (...args: any[]) => AnyTool;\n\nexport class DynamicTool<\n TOutput extends ToolOutput,\n TInputSchema extends AnyToolSchemaLike,\n TOptions extends BaseToolOptions = BaseToolOptions,\n TRunOptions extends BaseToolRunOptions = BaseToolRunOptions,\n TInput = FromSchemaLike<TInputSchema>,\n> extends Tool<TOutput, TOptions, TRunOptions> {\n static {\n this.register();\n }\n\n declare name: string;\n declare description: string;\n private readonly _inputSchema: TInputSchema;\n declare readonly emitter: Emitter<ToolEvents<FromSchemaLike<TInputSchema>, TOutput>>;\n private readonly handler;\n\n inputSchema(): TInputSchema {\n return this._inputSchema;\n }\n\n constructor(fields: {\n name: string;\n description: string;\n inputSchema: TInputSchema;\n handler: (\n input: TInput,\n options: Partial<TRunOptions>,\n run: GetRunContext<DynamicTool<TOutput, TInputSchema, TOptions, TRunOptions, TInput>>,\n ) => Promise<TOutput>;\n options?: TOptions;\n }) {\n validate(\n fields,\n z.object({\n name: z\n .string({ message: \"Tool must have a name\" })\n .refine((val) => /^[a-zA-Z0-9\\-_]+$/.test(val), {\n message: \"Tool name must only have -, _, letters or numbers\",\n }),\n description: z\n .string({ message: \"Tool must have a description\" })\n .refine((val) => val && val !== \"\", { message: \"Tool must have a description\" }),\n inputSchema: z.union([z.instanceof(ZodSchema), z.object({}).passthrough()], {\n message: \"Tool must have a schema\",\n }),\n handler: z.function(),\n options: z.object({}).passthrough().optional(),\n }),\n );\n super(...([fields.options] as ToolConstructorParameters<TOptions>));\n this.name = fields.name;\n this.description = fields.description;\n this._inputSchema = fields.inputSchema;\n this.handler = fields.handler;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"dynamic\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n protected _run(\n arg: TInput,\n options: Partial<TRunOptions>,\n run: GetRunContext<DynamicTool<TOutput, TInputSchema, TOptions, TRunOptions, TInput>>,\n ): Promise<TOutput> {\n return this.handler(arg, options, run);\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), handler: this.handler, _inputSchema: this._inputSchema };\n }\n\n loadSnapshot({ handler, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, { handler });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tools/base.ts"],"names":["ToolError","FrameworkError","ToolInputValidationError","validationErrors","message","ToolOutput","Serializable","toString","getTextContent","StringToolOutput","result","ctx","register","isEmpty","createSnapshot","loadSnapshot","snapshot","Object","assign","cacheKey","WeakRefKeyFn","from","self","JSONToolOutput","R","JSON","stringify","Tool","cache","options","contextKeys","Memory","Symbol","args","NullCache","toError","e","context","name","run","input","shallowCopy","RunContext","enter","signal","params","meta","errorPropagated","ref","parse","output","Retryable","executor","emitter","emit","enabled","_runCached","_run","onError","error","fatalErrors","some","cls","onRetry","_","config","_createRetryOptions","retryOptions","get","key","ObjectHashKeyFn","omit","cacheEntry","undefined","task","Task","set","then","req","resolve","catch","err","reject","delete","clearCache","clear","getInputJsonSchema","toJsonSchema","inputSchema","isTool","value","overrides","defaultOptions","maxRetries","factor","pipe","filter","isTruthy","map","pickBy","isDefined","mergeAll","schema","validateSchema","tool","hint","validateInput","isFatal","isRetryable","copy","preprocessInput","rawInput","validator","createSchemaValidator","success","errors","join","description","mapper","DynamicTool","handler","selfOutput","wrappedInput","extend","_inputSchema","fields","validate","z","object","string","refine","val","test","union","instanceof","ZodSchema","passthrough","function","optional","Emitter","root","child","namespace","toCamelCase","creator","arg"],"mappings":"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","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FrameworkError } from \"@/errors.js\";\nimport * as R from \"remeda\";\nimport { Retryable, RetryableConfig } from \"@/internals/helpers/retryable.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { Task } from \"promise-based-task\";\nimport { Cache, ObjectHashKeyFn, WeakRefKeyFn } from \"@/cache/decoratorCache.js\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { NullCache } from \"@/cache/nullCache.js\";\nimport type { ErrorObject, ValidateFunction } from \"ajv\";\nimport {\n AnyToolSchemaLike,\n createSchemaValidator,\n FromSchemaLike,\n FromSchemaLikeRaw,\n toJsonSchema,\n validateSchema,\n} from \"@/internals/helpers/schema.js\";\nimport { validate } from \"@/internals/helpers/general.js\";\nimport { z, ZodSchema } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { Callback } from \"@/emitter/types.js\";\nimport { GetRunContext, RunContext } from \"@/context.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { toCamelCase } from \"remeda\";\n\nexport class ToolError extends FrameworkError {}\n\nexport class ToolInputValidationError extends ToolError {\n validationErrors: ErrorObject[];\n\n constructor(message: string, validationErrors: ErrorObject[] = []) {\n super(message, []);\n this.validationErrors = validationErrors;\n }\n}\n\nexport interface RetryOptions {\n maxRetries?: number;\n factor?: number;\n}\n\nexport interface BaseToolOptions<TOutput = any> {\n retryOptions?: RetryOptions;\n fatalErrors?: ErrorConstructor[];\n cache?: BaseCache<Task<TOutput>> | false;\n}\n\nexport interface BaseToolRunOptions {\n retryOptions?: RetryOptions;\n signal?: AbortSignal;\n}\n\nexport abstract class ToolOutput extends Serializable {\n abstract getTextContent(): string;\n abstract isEmpty(): boolean;\n\n toString() {\n return this.getTextContent();\n }\n}\n\nexport class StringToolOutput extends ToolOutput {\n constructor(\n public readonly result = \"\",\n public readonly ctx?: Record<string, any>,\n ) {\n super();\n this.result = result ?? \"\";\n }\n\n static {\n this.register();\n }\n\n isEmpty() {\n return !this.result;\n }\n\n @Cache({\n cacheKey: WeakRefKeyFn.from<StringToolOutput>((self) => [self.result]),\n })\n getTextContent(): string {\n return this.result.toString();\n }\n\n createSnapshot() {\n return {\n result: this.result,\n ctx: this.ctx,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class JSONToolOutput<T> extends ToolOutput {\n constructor(\n public readonly result: T,\n public readonly ctx?: Record<string, any>,\n ) {\n super();\n }\n\n static {\n this.register();\n }\n\n isEmpty() {\n return !this.result || R.isEmpty(this.result);\n }\n\n getTextContent(): string {\n return JSON.stringify(this.result);\n }\n\n createSnapshot() {\n return {\n result: this.result,\n ctx: this.ctx,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport interface ToolSnapshot<TOutput extends ToolOutput, TOptions extends BaseToolOptions> {\n name: string;\n description: string;\n options: TOptions;\n cache: BaseCache<Task<TOutput>>;\n emitter: Emitter<any>;\n}\n\nexport type InferToolOutput<T extends AnyTool> = T extends Tool<infer A, any, any> ? A : never;\nexport type ToolInput<T extends AnyTool> = FromSchemaLike<Awaited<ReturnType<T[\"inputSchema\"]>>>;\nexport type ToolInputRaw<T extends AnyTool> = FromSchemaLikeRaw<\n Awaited<ReturnType<T[\"inputSchema\"]>>\n>;\n\ntype ToolConstructorParameters<TOptions extends BaseToolOptions> =\n Partial<TOptions> extends TOptions ? [options?: TOptions] : [options: TOptions];\n\nexport interface ToolEvents<\n TInput extends Record<string, any> = Record<string, any>,\n TOutput extends ToolOutput = ToolOutput,\n> {\n start: Callback<{ input: TInput; options: unknown }>;\n success: Callback<{ output: TOutput; input: TInput; options: unknown }>;\n error: Callback<{ input: TInput; error: ToolError | ToolInputValidationError; options: unknown }>;\n retry: Callback<{ error: ToolError | ToolInputValidationError; input: TInput; options: unknown }>;\n finish: Callback<null>;\n}\n\nexport type ToolEmitter<\n A extends Record<string, any>,\n B extends ToolOutput,\n C = Record<never, never>,\n> = Emitter<ToolEvents<A, B> & Omit<C, keyof ToolEvents>>;\n\nexport abstract class Tool<\n TOutput extends ToolOutput = ToolOutput,\n TOptions extends BaseToolOptions = BaseToolOptions,\n TRunOptions extends BaseToolRunOptions = BaseToolRunOptions,\n> extends Serializable {\n abstract name: string;\n abstract description: string;\n\n public readonly cache: BaseCache<Task<TOutput>>;\n public readonly options: TOptions;\n\n public static contextKeys = {\n Memory: Symbol(\"Memory\"),\n } as const;\n\n public abstract readonly emitter: Emitter<ToolEvents<any, TOutput>>;\n\n abstract inputSchema(): Promise<AnyToolSchemaLike> | AnyToolSchemaLike;\n\n constructor(...args: ToolConstructorParameters<TOptions>) {\n super();\n\n const [options] = args;\n this.options = options ?? ({} as TOptions);\n this.cache = options?.cache ? options.cache : new NullCache();\n }\n\n protected toError(e: Error, context: any) {\n if (e instanceof ToolError) {\n Object.assign(e.context, context);\n return e;\n } else {\n return new ToolError(`Tool \"${this.name}\" has occurred an error!`, [e], {\n context,\n });\n }\n }\n\n run(input: ToolInputRaw<this>, options: Partial<TRunOptions> = {}) {\n input = shallowCopy(input);\n options = shallowCopy(options);\n\n return RunContext.enter(\n this,\n { signal: options?.signal, params: [input, options] as const },\n async (run) => {\n const meta = { input, options };\n let errorPropagated = false;\n\n try {\n input = Object.assign({ ref: input }, { ref: await this.parse(input) }).ref;\n\n const output = await new Retryable({\n executor: async () => {\n errorPropagated = false;\n await run.emitter.emit(\"start\", { ...meta });\n return this.cache.enabled\n ? await this._runCached(input, options, run)\n : await this._run(input, options, run);\n },\n onError: async (error) => {\n errorPropagated = true;\n await run.emitter.emit(\"error\", {\n error: this.toError(error, meta),\n ...meta,\n });\n if (this.options.fatalErrors?.some((cls) => error instanceof cls)) {\n throw error;\n }\n },\n onRetry: async (_, error) => {\n await run.emitter.emit(\"retry\", { ...meta, error: this.toError(error, meta) });\n },\n config: {\n ...this._createRetryOptions(options?.retryOptions),\n signal: options?.signal,\n },\n }).get();\n\n await run.emitter.emit(\"success\", { output, ...meta });\n return output;\n } catch (e) {\n const error = this.toError(e, meta);\n if (!errorPropagated) {\n await run.emitter.emit(\"error\", {\n error,\n options,\n input,\n });\n }\n throw error;\n } finally {\n await run.emitter.emit(\"finish\", null);\n }\n },\n );\n }\n\n protected async _runCached(\n input: ToolInput<this>,\n options: Partial<TRunOptions>,\n run: GetRunContext<this>,\n ): Promise<TOutput> {\n const key = ObjectHashKeyFn({\n input,\n options: R.omit(options ?? ({} as TRunOptions), [\"signal\", \"retryOptions\"]),\n });\n\n const cacheEntry = await this.cache.get(key);\n if (cacheEntry !== undefined) {\n return cacheEntry!;\n }\n\n const task = new Task<TOutput, Error>();\n await this.cache.set(key, task);\n this._run(input, options, run)\n .then((req) => task.resolve(req))\n .catch(async (err) => {\n void task.reject(err);\n await this.cache.delete(key);\n });\n return task;\n }\n\n public async clearCache() {\n await this.cache.clear();\n }\n\n protected abstract _run(\n arg: ToolInput<this>,\n options: Partial<TRunOptions>,\n run: GetRunContext<typeof this>,\n ): Promise<TOutput>;\n\n async getInputJsonSchema() {\n return toJsonSchema(await this.inputSchema());\n }\n\n static isTool(value: unknown): value is Tool {\n return value instanceof Tool && \"name\" in value && \"description\" in value;\n }\n\n private _createRetryOptions(...overrides: (RetryOptions | undefined)[]): RetryableConfig {\n const defaultOptions: Required<RetryOptions> = {\n maxRetries: 0,\n factor: 1,\n };\n\n return R.pipe(\n [defaultOptions, this.options.retryOptions, ...overrides],\n R.filter(R.isTruthy),\n R.map((input: RetryOptions) => {\n const options: RetryableConfig = {\n maxRetries: input.maxRetries ?? defaultOptions.maxRetries,\n factor: input.factor ?? defaultOptions.maxRetries,\n };\n return R.pickBy(options, R.isDefined);\n }),\n R.mergeAll,\n ) as RetryableConfig;\n }\n\n async parse(input: unknown | ToolInputRaw<this> | ToolInput<this>): Promise<ToolInput<this>> {\n const schema = await this.inputSchema();\n if (schema) {\n validateSchema(schema, {\n context: {\n tool: this.constructor.name,\n hint: `To do post-validation override the '${this.validateInput.name}' method.`,\n schema,\n isFatal: true,\n isRetryable: false,\n },\n });\n }\n\n const copy = shallowCopy(input);\n this.preprocessInput(copy);\n this.validateInput(schema, copy);\n return copy;\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n protected preprocessInput(rawInput: unknown): void {}\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n rawInput: unknown,\n ): asserts rawInput is ToolInput<this> {\n const validator = createSchemaValidator(schema) as ValidateFunction<ToolInput<this>>;\n const success = validator(rawInput);\n if (!success) {\n throw new ToolInputValidationError(\n [\n `The received tool input does not match the expected schema.`,\n `Input Schema: \"${JSON.stringify(toJsonSchema(schema))}\"`,\n `Validation Errors: ${JSON.stringify(validator.errors)}`,\n ].join(\"\\n\"),\n // ts doesn't infer that when success is false `validator.errors` is defined\n validator.errors!,\n );\n }\n }\n\n createSnapshot(): ToolSnapshot<TOutput, TOptions> {\n return {\n name: this.name,\n description: this.description,\n cache: this.cache,\n options: shallowCopy(this.options),\n emitter: this.emitter,\n };\n }\n\n loadSnapshot(snapshot: ToolSnapshot<TOutput, TOptions>): void {\n Object.assign(this, snapshot);\n }\n\n pipe<S extends AnyTool, T extends AnyTool>(\n this: S,\n tool: T,\n mapper: (\n input: ToolInputRaw<S>,\n output: TOutput,\n options: Partial<TRunOptions>,\n run: RunContext<\n DynamicTool<TOutput, ZodSchema<ToolInput<S>>, TOptions, TRunOptions, ToolInput<S>>\n >,\n ) => ToolInputRaw<typeof tool>,\n ) {\n return new DynamicTool<TOutput, ZodSchema<ToolInput<S>>, TOptions, TRunOptions, ToolInput<S>>({\n name: this.name,\n description: this.description,\n options: this.options,\n inputSchema: this.inputSchema() as ZodSchema<ToolInput<S>>,\n handler: async (input: ToolInputRaw<S>, options, run): Promise<TOutput> => {\n const selfOutput = await this.run(input, options);\n const wrappedInput = mapper(input, selfOutput, options, run);\n return await tool.run(wrappedInput);\n },\n } as const);\n }\n\n extend<S extends AnyTool, TS extends ZodSchema>(\n this: S,\n schema: TS,\n mapper: (\n input: z.output<TS>,\n options: Partial<TRunOptions>,\n run: RunContext<DynamicTool<TOutput, TS, TOptions, TRunOptions, z.output<TS>>>,\n ) => ToolInputRaw<S>,\n overrides: {\n name?: string;\n description?: string;\n } = {},\n ) {\n return new DynamicTool<TOutput, TS, TOptions, TRunOptions, z.output<TS>>({\n name: overrides?.name || this.name,\n description: overrides?.name || this.description,\n options: shallowCopy(this.options),\n inputSchema: schema,\n handler: async (input: ToolInputRaw<S>, options, run): Promise<TOutput> => {\n const wrappedInput = mapper(input, options, run);\n return await this.run(wrappedInput, options);\n },\n } as const);\n }\n}\n\nexport type AnyTool = Tool<any, any, any>;\nexport type AnyToolClass = abstract new (...args: any[]) => AnyTool;\n\nexport class DynamicTool<\n TOutput extends ToolOutput,\n TInputSchema extends AnyToolSchemaLike,\n TOptions extends BaseToolOptions = BaseToolOptions,\n TRunOptions extends BaseToolRunOptions = BaseToolRunOptions,\n TInput = FromSchemaLike<TInputSchema>,\n> extends Tool<TOutput, TOptions, TRunOptions> {\n static {\n this.register();\n }\n\n declare name: string;\n declare description: string;\n private readonly _inputSchema: TInputSchema;\n declare readonly emitter: Emitter<ToolEvents<FromSchemaLike<TInputSchema>, TOutput>>;\n private readonly handler;\n\n inputSchema(): TInputSchema {\n return this._inputSchema;\n }\n\n constructor(fields: {\n name: string;\n description: string;\n inputSchema: TInputSchema;\n handler: (\n input: TInput,\n options: Partial<TRunOptions>,\n run: GetRunContext<DynamicTool<TOutput, TInputSchema, TOptions, TRunOptions, TInput>>,\n ) => Promise<TOutput>;\n options?: TOptions;\n }) {\n validate(\n fields,\n z.object({\n name: z\n .string({ message: \"Tool must have a name\" })\n .refine((val) => /^[a-zA-Z0-9\\-_]+$/.test(val), {\n message: \"Tool name must only have -, _, letters or numbers\",\n }),\n description: z\n .string({ message: \"Tool must have a description\" })\n .refine((val) => val && val !== \"\", { message: \"Tool must have a description\" }),\n inputSchema: z.union([z.instanceof(ZodSchema), z.object({}).passthrough()], {\n message: \"Tool must have a schema\",\n }),\n handler: z.function(),\n options: z.object({}).passthrough().optional(),\n }),\n );\n super(...([fields.options] as ToolConstructorParameters<TOptions>));\n this.name = fields.name;\n this.description = fields.description;\n this._inputSchema = fields.inputSchema;\n this.handler = fields.handler;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"dynamic\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n protected _run(\n arg: TInput,\n options: Partial<TRunOptions>,\n run: GetRunContext<DynamicTool<TOutput, TInputSchema, TOptions, TRunOptions, TInput>>,\n ): Promise<TOutput> {\n return this.handler(arg, options, run);\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), handler: this.handler, _inputSchema: this._inputSchema };\n }\n\n loadSnapshot({ handler, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, { handler });\n }\n}\n"]}
|
package/dist/tools/base.d.cts
CHANGED
|
@@ -7,7 +7,7 @@ import { Task } from 'promise-based-task';
|
|
|
7
7
|
import { BaseCache } from '../cache/base.cjs';
|
|
8
8
|
import { AnyToolSchemaLike, FromSchemaLikeRaw, FromSchemaLike } from '../internals/helpers/schema.cjs';
|
|
9
9
|
import { ZodSchema, z } from 'zod';
|
|
10
|
-
import { E as Emitter, C as Callback } from '../emitter-
|
|
10
|
+
import { E as Emitter, C as Callback } from '../emitter-D4OcelZ9.cjs';
|
|
11
11
|
import '../internals/helpers/promise.cjs';
|
|
12
12
|
import '../internals/types.cjs';
|
|
13
13
|
import '../internals/helpers/guards.cjs';
|
package/dist/tools/base.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { Task } from 'promise-based-task';
|
|
|
7
7
|
import { BaseCache } from '../cache/base.js';
|
|
8
8
|
import { AnyToolSchemaLike, FromSchemaLikeRaw, FromSchemaLike } from '../internals/helpers/schema.js';
|
|
9
9
|
import { ZodSchema, z } from 'zod';
|
|
10
|
-
import { E as Emitter, C as Callback } from '../emitter-
|
|
10
|
+
import { E as Emitter, C as Callback } from '../emitter-kHxkUxco.js';
|
|
11
11
|
import '../internals/helpers/promise.js';
|
|
12
12
|
import '../internals/types.js';
|
|
13
13
|
import '../internals/helpers/guards.js';
|
package/dist/tools/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/base.ts"],"names":["ToolError","FrameworkError","ToolInputValidationError","validationErrors","message","ToolOutput","Serializable","toString","getTextContent","StringToolOutput","result","ctx","register","isEmpty","createSnapshot","loadSnapshot","snapshot","Object","assign","cacheKey","WeakRefKeyFn","from","self","JSONToolOutput","R","JSON","stringify","Tool","cache","options","contextKeys","Memory","Symbol","args","NullCache","toError","e","context","name","run","input","shallowCopy","RunContext","enter","signal","params","meta","errorPropagated","ref","parse","output","Retryable","executor","emitter","emit","enabled","_runCached","_run","onError","error","fatalErrors","some","cls","onRetry","_","config","_createRetryOptions","retryOptions","get","key","ObjectHashKeyFn","omit","cacheEntry","undefined","task","Task","set","then","req","resolve","catch","err","reject","delete","clearCache","clear","getInputJsonSchema","toJsonSchema","inputSchema","isTool","value","overrides","defaultOptions","maxRetries","factor","pipe","filter","isTruthy","map","pickBy","isDefined","mergeAll","schema","validateSchema","tool","hint","validateInput","isFatal","isRetryable","copy","preprocessInput","rawInput","validator","createSchemaValidator","success","errors","join","description","mapper","DynamicTool","handler","selfOutput","wrappedInput","extend","_inputSchema","fields","validate","z","object","string","refine","val","test","union","instanceof","ZodSchema","passthrough","function","optional","Emitter","root","child","namespace","toCamelCase","creator","arg"],"mappings":"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","file":"base.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FrameworkError } from \"@/errors.js\";\nimport * as R from \"remeda\";\nimport { Retryable, RetryableConfig } from \"@/internals/helpers/retryable.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { Task } from \"promise-based-task\";\nimport { Cache, ObjectHashKeyFn, WeakRefKeyFn } from \"@/cache/decoratorCache.js\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { NullCache } from \"@/cache/nullCache.js\";\nimport type { ErrorObject, ValidateFunction } from \"ajv\";\nimport {\n AnyToolSchemaLike,\n createSchemaValidator,\n FromSchemaLike,\n FromSchemaLikeRaw,\n toJsonSchema,\n validateSchema,\n} from \"@/internals/helpers/schema.js\";\nimport { validate } from \"@/internals/helpers/general.js\";\nimport { z, ZodSchema } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { Callback } from \"@/emitter/types.js\";\nimport { GetRunContext, RunContext } from \"@/context.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { toCamelCase } from \"remeda\";\n\nexport class ToolError extends FrameworkError {}\n\nexport class ToolInputValidationError extends ToolError {\n validationErrors: ErrorObject[];\n\n constructor(message: string, validationErrors: ErrorObject[] = []) {\n super(message, []);\n this.validationErrors = validationErrors;\n }\n}\n\nexport interface RetryOptions {\n maxRetries?: number;\n factor?: number;\n}\n\nexport interface BaseToolOptions<TOutput = any> {\n retryOptions?: RetryOptions;\n fatalErrors?: ErrorConstructor[];\n cache?: BaseCache<Task<TOutput>> | false;\n}\n\nexport interface BaseToolRunOptions {\n retryOptions?: RetryOptions;\n signal?: AbortSignal;\n}\n\nexport abstract class ToolOutput extends Serializable {\n abstract getTextContent(): string;\n abstract isEmpty(): boolean;\n\n toString() {\n return this.getTextContent();\n }\n}\n\nexport class StringToolOutput extends ToolOutput {\n constructor(\n public readonly result = \"\",\n public readonly ctx?: Record<string, any>,\n ) {\n super();\n this.result = result ?? \"\";\n }\n\n static {\n this.register();\n }\n\n isEmpty() {\n return !this.result;\n }\n\n @Cache({\n cacheKey: WeakRefKeyFn.from<StringToolOutput>((self) => [self.result]),\n })\n getTextContent(): string {\n return this.result.toString();\n }\n\n createSnapshot() {\n return {\n result: this.result,\n ctx: this.ctx,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class JSONToolOutput<T> extends ToolOutput {\n constructor(\n public readonly result: T,\n public readonly ctx?: Record<string, any>,\n ) {\n super();\n }\n\n static {\n this.register();\n }\n\n isEmpty() {\n return !this.result || R.isEmpty(this.result);\n }\n\n getTextContent(): string {\n return JSON.stringify(this.result);\n }\n\n createSnapshot() {\n return {\n result: this.result,\n ctx: this.ctx,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport interface ToolSnapshot<TOutput extends ToolOutput, TOptions extends BaseToolOptions> {\n name: string;\n description: string;\n options: TOptions;\n cache: BaseCache<Task<TOutput>>;\n emitter: Emitter<any>;\n}\n\nexport type InferToolOutput<T extends AnyTool> = T extends Tool<infer A, any, any> ? A : never;\nexport type ToolInput<T extends AnyTool> = FromSchemaLike<Awaited<ReturnType<T[\"inputSchema\"]>>>;\nexport type ToolInputRaw<T extends AnyTool> = FromSchemaLikeRaw<\n Awaited<ReturnType<T[\"inputSchema\"]>>\n>;\n\ntype ToolConstructorParameters<TOptions extends BaseToolOptions> =\n Partial<TOptions> extends TOptions ? [options?: TOptions] : [options: TOptions];\n\nexport interface ToolEvents<\n TInput extends Record<string, any> = Record<string, any>,\n TOutput extends ToolOutput = ToolOutput,\n> {\n start: Callback<{ input: TInput; options: unknown }>;\n success: Callback<{ output: TOutput; input: TInput; options: unknown }>;\n error: Callback<{ input: TInput; error: ToolError | ToolInputValidationError; options: unknown }>;\n retry: Callback<{ error: ToolError | ToolInputValidationError; input: TInput; options: unknown }>;\n finish: Callback<null>;\n}\n\nexport type ToolEmitter<\n A extends Record<string, any>,\n B extends ToolOutput,\n C = Record<never, never>,\n> = Emitter<ToolEvents<A, B> & Omit<C, keyof ToolEvents>>;\n\nexport abstract class Tool<\n TOutput extends ToolOutput = ToolOutput,\n TOptions extends BaseToolOptions = BaseToolOptions,\n TRunOptions extends BaseToolRunOptions = BaseToolRunOptions,\n> extends Serializable {\n abstract name: string;\n abstract description: string;\n\n public readonly cache: BaseCache<Task<TOutput>>;\n public readonly options: TOptions;\n\n public static contextKeys = {\n Memory: Symbol(\"Memory\"),\n } as const;\n\n public abstract readonly emitter: Emitter<ToolEvents<any, TOutput>>;\n\n abstract inputSchema(): Promise<AnyToolSchemaLike> | AnyToolSchemaLike;\n\n constructor(...args: ToolConstructorParameters<TOptions>) {\n super();\n\n const [options] = args;\n this.options = options ?? ({} as TOptions);\n this.cache = options?.cache ? options.cache : new NullCache();\n }\n\n protected toError(e: Error, context: any) {\n if (e instanceof ToolError) {\n Object.assign(e.context, context);\n return e;\n } else {\n return new ToolError(`Tool \"${this.name}\" has occurred an error!`, [e], {\n context,\n });\n }\n }\n\n run(input: ToolInputRaw<this>, options: Partial<TRunOptions> = {}) {\n input = shallowCopy(input);\n options = shallowCopy(options);\n\n return RunContext.enter(\n this,\n { signal: options?.signal, params: [input, options] as const },\n async (run) => {\n const meta = { input, options };\n let errorPropagated = false;\n\n try {\n input = Object.assign({ ref: input }, { ref: await this.parse(input) }).ref;\n\n const output = await new Retryable({\n executor: async () => {\n errorPropagated = false;\n await run.emitter.emit(\"start\", { ...meta });\n return this.cache.enabled\n ? await this._runCached(input, options, run)\n : await this._run(input, options, run);\n },\n onError: async (error) => {\n errorPropagated = true;\n await run.emitter.emit(\"error\", {\n error: this.toError(error, meta),\n ...meta,\n });\n if (this.options.fatalErrors?.some((cls) => error instanceof cls)) {\n throw error;\n }\n },\n onRetry: async (_, error) => {\n await run.emitter.emit(\"retry\", { ...meta, error: this.toError(error, meta) });\n },\n config: {\n ...this._createRetryOptions(options?.retryOptions),\n signal: options?.signal,\n },\n }).get();\n\n await run.emitter.emit(\"success\", { output, ...meta });\n return output;\n } catch (e) {\n const error = this.toError(e, meta);\n if (!errorPropagated) {\n await run.emitter.emit(\"error\", {\n error,\n options,\n input,\n });\n }\n throw error;\n } finally {\n await run.emitter.emit(\"finish\", null);\n }\n },\n );\n }\n\n protected async _runCached(\n input: ToolInput<this>,\n options: Partial<TRunOptions>,\n run: GetRunContext<this>,\n ): Promise<TOutput> {\n const key = ObjectHashKeyFn({\n input,\n options: R.omit(options ?? ({} as TRunOptions), [\"signal\", \"retryOptions\"]),\n });\n\n const cacheEntry = await this.cache.get(key);\n if (cacheEntry !== undefined) {\n return cacheEntry!;\n }\n\n const task = new Task<TOutput, Error>();\n await this.cache.set(key, task);\n this._run(input, options, run)\n .then((req) => task.resolve(req))\n .catch(async (err) => {\n void task.reject(err);\n await this.cache.delete(key);\n });\n return task;\n }\n\n public async clearCache() {\n await this.cache.clear();\n }\n\n protected abstract _run(\n arg: ToolInput<this>,\n options: Partial<TRunOptions>,\n run: GetRunContext<typeof this>,\n ): Promise<TOutput>;\n\n async getInputJsonSchema() {\n return toJsonSchema(await this.inputSchema());\n }\n\n static isTool(value: unknown): value is Tool {\n return value instanceof Tool && \"name\" in value && \"description\" in value;\n }\n\n private _createRetryOptions(...overrides: (RetryOptions | undefined)[]): RetryableConfig {\n const defaultOptions: Required<RetryOptions> = {\n maxRetries: 0,\n factor: 1,\n };\n\n return R.pipe(\n [defaultOptions, this.options.retryOptions, ...overrides],\n R.filter(R.isTruthy),\n R.map((input: RetryOptions) => {\n const options: RetryableConfig = {\n maxRetries: input.maxRetries ?? defaultOptions.maxRetries,\n factor: input.factor ?? defaultOptions.maxRetries,\n };\n return R.pickBy(options, R.isDefined);\n }),\n R.mergeAll,\n ) as RetryableConfig;\n }\n\n async parse(input: unknown | ToolInputRaw<this> | ToolInput<this>): Promise<ToolInput<this>> {\n const schema = await this.inputSchema();\n if (schema) {\n validateSchema(schema, {\n context: {\n tool: this.constructor.name,\n hint: `To do post-validation override the '${this.validateInput.name}' method.`,\n schema,\n isFatal: true,\n isRetryable: false,\n },\n });\n }\n\n const copy = shallowCopy(input);\n this.preprocessInput(copy);\n this.validateInput(schema, copy);\n return copy;\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n protected preprocessInput(rawInput: unknown): void {}\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n rawInput: unknown,\n ): asserts rawInput is ToolInput<this> {\n const validator = createSchemaValidator(schema) as ValidateFunction<ToolInput<this>>;\n const success = validator(rawInput);\n if (!success) {\n throw new ToolInputValidationError(\n [\n `The received tool input does not match the expected schema.`,\n `Input Schema: \"${JSON.stringify(toJsonSchema(schema))}\"`,\n `Validation Errors: ${JSON.stringify(validator.errors)}`,\n ].join(\"\\n\"),\n // ts doesn't infer that when success is false `validator.errors` is defined\n validator.errors!,\n );\n }\n }\n\n createSnapshot(): ToolSnapshot<TOutput, TOptions> {\n return {\n name: this.name,\n description: this.description,\n cache: this.cache,\n options: shallowCopy(this.options),\n emitter: this.emitter,\n };\n }\n\n loadSnapshot(snapshot: ToolSnapshot<TOutput, TOptions>): void {\n Object.assign(this, snapshot);\n }\n\n pipe<S extends AnyTool, T extends AnyTool>(\n this: S,\n tool: T,\n mapper: (\n input: ToolInputRaw<S>,\n output: TOutput,\n options: Partial<TRunOptions>,\n run: RunContext<\n DynamicTool<TOutput, ZodSchema<ToolInput<S>>, TOptions, TRunOptions, ToolInput<S>>\n >,\n ) => ToolInputRaw<typeof tool>,\n ) {\n return new DynamicTool<TOutput, ZodSchema<ToolInput<S>>, TOptions, TRunOptions, ToolInput<S>>({\n name: this.name,\n description: this.description,\n options: this.options,\n inputSchema: this.inputSchema() as ZodSchema<ToolInput<S>>,\n handler: async (input: ToolInputRaw<S>, options, run): Promise<TOutput> => {\n const selfOutput = await this.run(input, options);\n const wrappedInput = mapper(input, selfOutput, options, run);\n return await tool.run(wrappedInput);\n },\n } as const);\n }\n\n extend<S extends AnyTool, TS extends ZodSchema>(\n this: S,\n schema: TS,\n mapper: (\n input: z.output<TS>,\n options: Partial<TRunOptions>,\n run: RunContext<DynamicTool<TOutput, TS, TOptions, TRunOptions, z.output<TS>>>,\n ) => ToolInputRaw<S>,\n overrides: {\n name?: string;\n description?: string;\n } = {},\n ) {\n return new DynamicTool<TOutput, TS, TOptions, TRunOptions, z.output<TS>>({\n name: overrides?.name || this.name,\n description: overrides?.name || this.description,\n options: shallowCopy(this.options),\n inputSchema: schema,\n handler: async (input: ToolInputRaw<S>, options, run): Promise<TOutput> => {\n const wrappedInput = mapper(input, options, run);\n return await this.run(wrappedInput, options);\n },\n } as const);\n }\n}\n\nexport type AnyTool = Tool<any, any, any>;\nexport type AnyToolClass = abstract new (...args: any[]) => AnyTool;\n\nexport class DynamicTool<\n TOutput extends ToolOutput,\n TInputSchema extends AnyToolSchemaLike,\n TOptions extends BaseToolOptions = BaseToolOptions,\n TRunOptions extends BaseToolRunOptions = BaseToolRunOptions,\n TInput = FromSchemaLike<TInputSchema>,\n> extends Tool<TOutput, TOptions, TRunOptions> {\n static {\n this.register();\n }\n\n declare name: string;\n declare description: string;\n private readonly _inputSchema: TInputSchema;\n declare readonly emitter: Emitter<ToolEvents<FromSchemaLike<TInputSchema>, TOutput>>;\n private readonly handler;\n\n inputSchema(): TInputSchema {\n return this._inputSchema;\n }\n\n constructor(fields: {\n name: string;\n description: string;\n inputSchema: TInputSchema;\n handler: (\n input: TInput,\n options: Partial<TRunOptions>,\n run: GetRunContext<DynamicTool<TOutput, TInputSchema, TOptions, TRunOptions, TInput>>,\n ) => Promise<TOutput>;\n options?: TOptions;\n }) {\n validate(\n fields,\n z.object({\n name: z\n .string({ message: \"Tool must have a name\" })\n .refine((val) => /^[a-zA-Z0-9\\-_]+$/.test(val), {\n message: \"Tool name must only have -, _, letters or numbers\",\n }),\n description: z\n .string({ message: \"Tool must have a description\" })\n .refine((val) => val && val !== \"\", { message: \"Tool must have a description\" }),\n inputSchema: z.union([z.instanceof(ZodSchema), z.object({}).passthrough()], {\n message: \"Tool must have a schema\",\n }),\n handler: z.function(),\n options: z.object({}).passthrough().optional(),\n }),\n );\n super(...([fields.options] as ToolConstructorParameters<TOptions>));\n this.name = fields.name;\n this.description = fields.description;\n this._inputSchema = fields.inputSchema;\n this.handler = fields.handler;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"dynamic\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n protected _run(\n arg: TInput,\n options: Partial<TRunOptions>,\n run: GetRunContext<DynamicTool<TOutput, TInputSchema, TOptions, TRunOptions, TInput>>,\n ): Promise<TOutput> {\n return this.handler(arg, options, run);\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), handler: this.handler, _inputSchema: this._inputSchema };\n }\n\n loadSnapshot({ handler, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, { handler });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tools/base.ts"],"names":["ToolError","FrameworkError","ToolInputValidationError","validationErrors","message","ToolOutput","Serializable","toString","getTextContent","StringToolOutput","result","ctx","register","isEmpty","createSnapshot","loadSnapshot","snapshot","Object","assign","cacheKey","WeakRefKeyFn","from","self","JSONToolOutput","R","JSON","stringify","Tool","cache","options","contextKeys","Memory","Symbol","args","NullCache","toError","e","context","name","run","input","shallowCopy","RunContext","enter","signal","params","meta","errorPropagated","ref","parse","output","Retryable","executor","emitter","emit","enabled","_runCached","_run","onError","error","fatalErrors","some","cls","onRetry","_","config","_createRetryOptions","retryOptions","get","key","ObjectHashKeyFn","omit","cacheEntry","undefined","task","Task","set","then","req","resolve","catch","err","reject","delete","clearCache","clear","getInputJsonSchema","toJsonSchema","inputSchema","isTool","value","overrides","defaultOptions","maxRetries","factor","pipe","filter","isTruthy","map","pickBy","isDefined","mergeAll","schema","validateSchema","tool","hint","validateInput","isFatal","isRetryable","copy","preprocessInput","rawInput","validator","createSchemaValidator","success","errors","join","description","mapper","DynamicTool","handler","selfOutput","wrappedInput","extend","_inputSchema","fields","validate","z","object","string","refine","val","test","union","instanceof","ZodSchema","passthrough","function","optional","Emitter","root","child","namespace","toCamelCase","creator","arg"],"mappings":"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","file":"base.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FrameworkError } from \"@/errors.js\";\nimport * as R from \"remeda\";\nimport { Retryable, RetryableConfig } from \"@/internals/helpers/retryable.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { Task } from \"promise-based-task\";\nimport { Cache, ObjectHashKeyFn, WeakRefKeyFn } from \"@/cache/decoratorCache.js\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { NullCache } from \"@/cache/nullCache.js\";\nimport type { ErrorObject, ValidateFunction } from \"ajv\";\nimport {\n AnyToolSchemaLike,\n createSchemaValidator,\n FromSchemaLike,\n FromSchemaLikeRaw,\n toJsonSchema,\n validateSchema,\n} from \"@/internals/helpers/schema.js\";\nimport { validate } from \"@/internals/helpers/general.js\";\nimport { z, ZodSchema } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { Callback } from \"@/emitter/types.js\";\nimport { GetRunContext, RunContext } from \"@/context.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { toCamelCase } from \"remeda\";\n\nexport class ToolError extends FrameworkError {}\n\nexport class ToolInputValidationError extends ToolError {\n validationErrors: ErrorObject[];\n\n constructor(message: string, validationErrors: ErrorObject[] = []) {\n super(message, []);\n this.validationErrors = validationErrors;\n }\n}\n\nexport interface RetryOptions {\n maxRetries?: number;\n factor?: number;\n}\n\nexport interface BaseToolOptions<TOutput = any> {\n retryOptions?: RetryOptions;\n fatalErrors?: ErrorConstructor[];\n cache?: BaseCache<Task<TOutput>> | false;\n}\n\nexport interface BaseToolRunOptions {\n retryOptions?: RetryOptions;\n signal?: AbortSignal;\n}\n\nexport abstract class ToolOutput extends Serializable {\n abstract getTextContent(): string;\n abstract isEmpty(): boolean;\n\n toString() {\n return this.getTextContent();\n }\n}\n\nexport class StringToolOutput extends ToolOutput {\n constructor(\n public readonly result = \"\",\n public readonly ctx?: Record<string, any>,\n ) {\n super();\n this.result = result ?? \"\";\n }\n\n static {\n this.register();\n }\n\n isEmpty() {\n return !this.result;\n }\n\n @Cache({\n cacheKey: WeakRefKeyFn.from<StringToolOutput>((self) => [self.result]),\n })\n getTextContent(): string {\n return this.result.toString();\n }\n\n createSnapshot() {\n return {\n result: this.result,\n ctx: this.ctx,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class JSONToolOutput<T> extends ToolOutput {\n constructor(\n public readonly result: T,\n public readonly ctx?: Record<string, any>,\n ) {\n super();\n }\n\n static {\n this.register();\n }\n\n isEmpty() {\n return !this.result || R.isEmpty(this.result);\n }\n\n getTextContent(): string {\n return JSON.stringify(this.result);\n }\n\n createSnapshot() {\n return {\n result: this.result,\n ctx: this.ctx,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport interface ToolSnapshot<TOutput extends ToolOutput, TOptions extends BaseToolOptions> {\n name: string;\n description: string;\n options: TOptions;\n cache: BaseCache<Task<TOutput>>;\n emitter: Emitter<any>;\n}\n\nexport type InferToolOutput<T extends AnyTool> = T extends Tool<infer A, any, any> ? A : never;\nexport type ToolInput<T extends AnyTool> = FromSchemaLike<Awaited<ReturnType<T[\"inputSchema\"]>>>;\nexport type ToolInputRaw<T extends AnyTool> = FromSchemaLikeRaw<\n Awaited<ReturnType<T[\"inputSchema\"]>>\n>;\n\ntype ToolConstructorParameters<TOptions extends BaseToolOptions> =\n Partial<TOptions> extends TOptions ? [options?: TOptions] : [options: TOptions];\n\nexport interface ToolEvents<\n TInput extends Record<string, any> = Record<string, any>,\n TOutput extends ToolOutput = ToolOutput,\n> {\n start: Callback<{ input: TInput; options: unknown }>;\n success: Callback<{ output: TOutput; input: TInput; options: unknown }>;\n error: Callback<{ input: TInput; error: ToolError | ToolInputValidationError; options: unknown }>;\n retry: Callback<{ error: ToolError | ToolInputValidationError; input: TInput; options: unknown }>;\n finish: Callback<null>;\n}\n\nexport type ToolEmitter<\n A extends Record<string, any>,\n B extends ToolOutput,\n C = Record<never, never>,\n> = Emitter<ToolEvents<A, B> & Omit<C, keyof ToolEvents>>;\n\nexport abstract class Tool<\n TOutput extends ToolOutput = ToolOutput,\n TOptions extends BaseToolOptions = BaseToolOptions,\n TRunOptions extends BaseToolRunOptions = BaseToolRunOptions,\n> extends Serializable {\n abstract name: string;\n abstract description: string;\n\n public readonly cache: BaseCache<Task<TOutput>>;\n public readonly options: TOptions;\n\n public static contextKeys = {\n Memory: Symbol(\"Memory\"),\n } as const;\n\n public abstract readonly emitter: Emitter<ToolEvents<any, TOutput>>;\n\n abstract inputSchema(): Promise<AnyToolSchemaLike> | AnyToolSchemaLike;\n\n constructor(...args: ToolConstructorParameters<TOptions>) {\n super();\n\n const [options] = args;\n this.options = options ?? ({} as TOptions);\n this.cache = options?.cache ? options.cache : new NullCache();\n }\n\n protected toError(e: Error, context: any) {\n if (e instanceof ToolError) {\n Object.assign(e.context, context);\n return e;\n } else {\n return new ToolError(`Tool \"${this.name}\" has occurred an error!`, [e], {\n context,\n });\n }\n }\n\n run(input: ToolInputRaw<this>, options: Partial<TRunOptions> = {}) {\n input = shallowCopy(input);\n options = shallowCopy(options);\n\n return RunContext.enter(\n this,\n { signal: options?.signal, params: [input, options] as const },\n async (run) => {\n const meta = { input, options };\n let errorPropagated = false;\n\n try {\n input = Object.assign({ ref: input }, { ref: await this.parse(input) }).ref;\n\n const output = await new Retryable({\n executor: async () => {\n errorPropagated = false;\n await run.emitter.emit(\"start\", { ...meta });\n return this.cache.enabled\n ? await this._runCached(input, options, run)\n : await this._run(input, options, run);\n },\n onError: async (error) => {\n errorPropagated = true;\n await run.emitter.emit(\"error\", {\n error: this.toError(error, meta),\n ...meta,\n });\n if (this.options.fatalErrors?.some((cls) => error instanceof cls)) {\n throw error;\n }\n },\n onRetry: async (_, error) => {\n await run.emitter.emit(\"retry\", { ...meta, error: this.toError(error, meta) });\n },\n config: {\n ...this._createRetryOptions(options?.retryOptions),\n signal: options?.signal,\n },\n }).get();\n\n await run.emitter.emit(\"success\", { output, ...meta });\n return output;\n } catch (e) {\n const error = this.toError(e, meta);\n if (!errorPropagated) {\n await run.emitter.emit(\"error\", {\n error,\n options,\n input,\n });\n }\n throw error;\n } finally {\n await run.emitter.emit(\"finish\", null);\n }\n },\n );\n }\n\n protected async _runCached(\n input: ToolInput<this>,\n options: Partial<TRunOptions>,\n run: GetRunContext<this>,\n ): Promise<TOutput> {\n const key = ObjectHashKeyFn({\n input,\n options: R.omit(options ?? ({} as TRunOptions), [\"signal\", \"retryOptions\"]),\n });\n\n const cacheEntry = await this.cache.get(key);\n if (cacheEntry !== undefined) {\n return cacheEntry!;\n }\n\n const task = new Task<TOutput, Error>();\n await this.cache.set(key, task);\n this._run(input, options, run)\n .then((req) => task.resolve(req))\n .catch(async (err) => {\n void task.reject(err);\n await this.cache.delete(key);\n });\n return task;\n }\n\n public async clearCache() {\n await this.cache.clear();\n }\n\n protected abstract _run(\n arg: ToolInput<this>,\n options: Partial<TRunOptions>,\n run: GetRunContext<typeof this>,\n ): Promise<TOutput>;\n\n async getInputJsonSchema() {\n return toJsonSchema(await this.inputSchema());\n }\n\n static isTool(value: unknown): value is Tool {\n return value instanceof Tool && \"name\" in value && \"description\" in value;\n }\n\n private _createRetryOptions(...overrides: (RetryOptions | undefined)[]): RetryableConfig {\n const defaultOptions: Required<RetryOptions> = {\n maxRetries: 0,\n factor: 1,\n };\n\n return R.pipe(\n [defaultOptions, this.options.retryOptions, ...overrides],\n R.filter(R.isTruthy),\n R.map((input: RetryOptions) => {\n const options: RetryableConfig = {\n maxRetries: input.maxRetries ?? defaultOptions.maxRetries,\n factor: input.factor ?? defaultOptions.maxRetries,\n };\n return R.pickBy(options, R.isDefined);\n }),\n R.mergeAll,\n ) as RetryableConfig;\n }\n\n async parse(input: unknown | ToolInputRaw<this> | ToolInput<this>): Promise<ToolInput<this>> {\n const schema = await this.inputSchema();\n if (schema) {\n validateSchema(schema, {\n context: {\n tool: this.constructor.name,\n hint: `To do post-validation override the '${this.validateInput.name}' method.`,\n schema,\n isFatal: true,\n isRetryable: false,\n },\n });\n }\n\n const copy = shallowCopy(input);\n this.preprocessInput(copy);\n this.validateInput(schema, copy);\n return copy;\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n protected preprocessInput(rawInput: unknown): void {}\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n rawInput: unknown,\n ): asserts rawInput is ToolInput<this> {\n const validator = createSchemaValidator(schema) as ValidateFunction<ToolInput<this>>;\n const success = validator(rawInput);\n if (!success) {\n throw new ToolInputValidationError(\n [\n `The received tool input does not match the expected schema.`,\n `Input Schema: \"${JSON.stringify(toJsonSchema(schema))}\"`,\n `Validation Errors: ${JSON.stringify(validator.errors)}`,\n ].join(\"\\n\"),\n // ts doesn't infer that when success is false `validator.errors` is defined\n validator.errors!,\n );\n }\n }\n\n createSnapshot(): ToolSnapshot<TOutput, TOptions> {\n return {\n name: this.name,\n description: this.description,\n cache: this.cache,\n options: shallowCopy(this.options),\n emitter: this.emitter,\n };\n }\n\n loadSnapshot(snapshot: ToolSnapshot<TOutput, TOptions>): void {\n Object.assign(this, snapshot);\n }\n\n pipe<S extends AnyTool, T extends AnyTool>(\n this: S,\n tool: T,\n mapper: (\n input: ToolInputRaw<S>,\n output: TOutput,\n options: Partial<TRunOptions>,\n run: RunContext<\n DynamicTool<TOutput, ZodSchema<ToolInput<S>>, TOptions, TRunOptions, ToolInput<S>>\n >,\n ) => ToolInputRaw<typeof tool>,\n ) {\n return new DynamicTool<TOutput, ZodSchema<ToolInput<S>>, TOptions, TRunOptions, ToolInput<S>>({\n name: this.name,\n description: this.description,\n options: this.options,\n inputSchema: this.inputSchema() as ZodSchema<ToolInput<S>>,\n handler: async (input: ToolInputRaw<S>, options, run): Promise<TOutput> => {\n const selfOutput = await this.run(input, options);\n const wrappedInput = mapper(input, selfOutput, options, run);\n return await tool.run(wrappedInput);\n },\n } as const);\n }\n\n extend<S extends AnyTool, TS extends ZodSchema>(\n this: S,\n schema: TS,\n mapper: (\n input: z.output<TS>,\n options: Partial<TRunOptions>,\n run: RunContext<DynamicTool<TOutput, TS, TOptions, TRunOptions, z.output<TS>>>,\n ) => ToolInputRaw<S>,\n overrides: {\n name?: string;\n description?: string;\n } = {},\n ) {\n return new DynamicTool<TOutput, TS, TOptions, TRunOptions, z.output<TS>>({\n name: overrides?.name || this.name,\n description: overrides?.name || this.description,\n options: shallowCopy(this.options),\n inputSchema: schema,\n handler: async (input: ToolInputRaw<S>, options, run): Promise<TOutput> => {\n const wrappedInput = mapper(input, options, run);\n return await this.run(wrappedInput, options);\n },\n } as const);\n }\n}\n\nexport type AnyTool = Tool<any, any, any>;\nexport type AnyToolClass = abstract new (...args: any[]) => AnyTool;\n\nexport class DynamicTool<\n TOutput extends ToolOutput,\n TInputSchema extends AnyToolSchemaLike,\n TOptions extends BaseToolOptions = BaseToolOptions,\n TRunOptions extends BaseToolRunOptions = BaseToolRunOptions,\n TInput = FromSchemaLike<TInputSchema>,\n> extends Tool<TOutput, TOptions, TRunOptions> {\n static {\n this.register();\n }\n\n declare name: string;\n declare description: string;\n private readonly _inputSchema: TInputSchema;\n declare readonly emitter: Emitter<ToolEvents<FromSchemaLike<TInputSchema>, TOutput>>;\n private readonly handler;\n\n inputSchema(): TInputSchema {\n return this._inputSchema;\n }\n\n constructor(fields: {\n name: string;\n description: string;\n inputSchema: TInputSchema;\n handler: (\n input: TInput,\n options: Partial<TRunOptions>,\n run: GetRunContext<DynamicTool<TOutput, TInputSchema, TOptions, TRunOptions, TInput>>,\n ) => Promise<TOutput>;\n options?: TOptions;\n }) {\n validate(\n fields,\n z.object({\n name: z\n .string({ message: \"Tool must have a name\" })\n .refine((val) => /^[a-zA-Z0-9\\-_]+$/.test(val), {\n message: \"Tool name must only have -, _, letters or numbers\",\n }),\n description: z\n .string({ message: \"Tool must have a description\" })\n .refine((val) => val && val !== \"\", { message: \"Tool must have a description\" }),\n inputSchema: z.union([z.instanceof(ZodSchema), z.object({}).passthrough()], {\n message: \"Tool must have a schema\",\n }),\n handler: z.function(),\n options: z.object({}).passthrough().optional(),\n }),\n );\n super(...([fields.options] as ToolConstructorParameters<TOptions>));\n this.name = fields.name;\n this.description = fields.description;\n this._inputSchema = fields.inputSchema;\n this.handler = fields.handler;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"dynamic\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n protected _run(\n arg: TInput,\n options: Partial<TRunOptions>,\n run: GetRunContext<DynamicTool<TOutput, TInputSchema, TOptions, TRunOptions, TInput>>,\n ): Promise<TOutput> {\n return this.handler(arg, options, run);\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), handler: this.handler, _inputSchema: this._inputSchema };\n }\n\n loadSnapshot({ handler, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, { handler });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/calculator.ts"],"names":["CalculatorTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","expression","string","min","describe","limitedEvaluate","config","imports","options","math","create","all","evaluate","import","Error","createUnit","reviver","parse","simplify","derivative","resolve","override","_run","result","StringToolOutput"],"mappings":";;;;;;;;;AAyBO,MAAMA,uBAAuBC,aAAAA,CAAAA;EAzBpC;;;EA0BEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,CAAA;;EAGEC,OAAAA,GAA0DC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC3FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOC,MAAEC,MAAAA,CAAO;AACdC,MAAAA,UAAAA,EAAYF,MACTG,MAAAA,EAAM,CACNC,IAAI,CAAA,CAAA,CACJC,SACC,CAAA,gHAAA,CAAkH;KAExH,CAAA;AACF;AAEUC,EAAAA,eAAAA;AAEV,EAAA,WAAA,CAAY,EAAEC,MAAAA,EAAQC,OAAAA,EAAS,GAAGC,OAAAA,EAAAA,GAAiC,EAAC,EAAG;AACrE,IAAA,KAAA,CAAMA,OAAAA,CAAAA;AACN,IAAA,MAAMC,IAAAA,GAAOC,aAAAA,CAAOC,UAAAA,EAAKL,MAAAA,CAAAA;AACzB,IAAA,IAAA,CAAKD,kBAAkBI,IAAAA,CAAKG,QAAAA;AAE5BH,IAAAA,IAAAA,CAAKI,MAAAA,CACH;;AAEEA,MAAAA,MAAAA,kBAAQ,MAAA,CAAA,WAAA;AACN,QAAA,MAAM,IAAIC,MAAM,6BAAA,CAAA;
|
|
1
|
+
{"version":3,"sources":["../../src/tools/calculator.ts"],"names":["CalculatorTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","expression","string","min","describe","limitedEvaluate","config","imports","options","math","create","all","evaluate","import","Error","createUnit","reviver","parse","simplify","derivative","resolve","override","_run","result","StringToolOutput"],"mappings":";;;;;;;;;AAyBO,MAAMA,uBAAuBC,aAAAA,CAAAA;EAzBpC;;;EA0BEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,CAAA;;EAGEC,OAAAA,GAA0DC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC3FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOC,MAAEC,MAAAA,CAAO;AACdC,MAAAA,UAAAA,EAAYF,MACTG,MAAAA,EAAM,CACNC,IAAI,CAAA,CAAA,CACJC,SACC,CAAA,gHAAA,CAAkH;KAExH,CAAA;AACF,EAAA;AAEUC,EAAAA,eAAAA;AAEV,EAAA,WAAA,CAAY,EAAEC,MAAAA,EAAQC,OAAAA,EAAS,GAAGC,OAAAA,EAAAA,GAAiC,EAAC,EAAG;AACrE,IAAA,KAAA,CAAMA,OAAAA,CAAAA;AACN,IAAA,MAAMC,IAAAA,GAAOC,aAAAA,CAAOC,UAAAA,EAAKL,MAAAA,CAAAA;AACzB,IAAA,IAAA,CAAKD,kBAAkBI,IAAAA,CAAKG,QAAAA;AAE5BH,IAAAA,IAAAA,CAAKI,MAAAA,CACH;;AAEEA,MAAAA,MAAAA,kBAAQ,MAAA,CAAA,WAAA;AACN,QAAA,MAAM,IAAIC,MAAM,6BAAA,CAAA;MAClB,CAAA,EAFQ,QAAA,CAAA;AAGRC,MAAAA,UAAAA,kBAAY,MAAA,CAAA,WAAA;AACV,QAAA,MAAM,IAAID,MAAM,iCAAA,CAAA;MAClB,CAAA,EAFY,YAAA,CAAA;AAGZE,MAAAA,OAAAA,kBAAS,MAAA,CAAA,WAAA;AACP,QAAA,MAAM,IAAIF,MAAM,8BAAA,CAAA;MAClB,CAAA,EAFS,SAAA,CAAA;;AAKTF,MAAAA,QAAAA,kBAAU,MAAA,CAAA,WAAA;AACR,QAAA,MAAM,IAAIE,MAAM,+BAAA,CAAA;MAClB,CAAA,EAFU,UAAA,CAAA;AAGVG,MAAAA,KAAAA,kBAAO,MAAA,CAAA,WAAA;AACL,QAAA,MAAM,IAAIH,MAAM,4BAAA,CAAA;MAClB,CAAA,EAFO,OAAA,CAAA;AAGPI,MAAAA,QAAAA,kBAAU,MAAA,CAAA,WAAA;AACR,QAAA,MAAM,IAAIJ,MAAM,+BAAA,CAAA;MAClB,CAAA,EAFU,UAAA,CAAA;AAGVK,MAAAA,UAAAA,kBAAY,MAAA,CAAA,WAAA;AACV,QAAA,MAAM,IAAIL,MAAM,iCAAA,CAAA;MAClB,CAAA,EAFY,YAAA,CAAA;AAGZM,MAAAA,OAAAA,kBAAS,MAAA,CAAA,WAAA;AACP,QAAA,MAAM,IAAIN,MAAM,8BAAA,CAAA;MAClB,CAAA,EAFS,SAAA;KAGX,EACA;MAAEO,QAAAA,EAAU,IAAA;AAAM,MAAA,GAAGd,OAAAA,EAASC;KAAQ,CAAA;AAE1C,EAAA;EAEA,MAAgBc,IAAAA,CAAK,EAAErB,UAAAA,EAAU,EAAqB;AACpD,IAAA,MAAMsB,MAAAA,GAAS,IAAA,CAAKlB,eAAAA,CAAgBJ,UAAAA,CAAAA;AACpC,IAAA,OAAO,IAAIuB,0BAAiBD,MAAAA,CAAAA;AAC9B,EAAA;AACF","file":"calculator.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolEmitter, StringToolOutput, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { create, all, evaluate, ImportOptions, ImportObject, ConfigOptions } from \"mathjs\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface CalculatorToolInput {\n config?: ConfigOptions;\n imports?: {\n entries: ImportObject | ImportObject[];\n options?: ImportOptions;\n };\n}\n\n/**\n * Warning: The CalculatorTool enables the agent (and by proxy the user) to execute arbitrary\n * expressions via mathjs.\n *\n * Please consider the security and stability risks documented at\n * https://mathjs.org/docs/expressions/security.html before using this tool.\n */\nexport class CalculatorTool extends Tool<StringToolOutput> {\n name = \"Calculator\";\n description = `A calculator tool that performs basic arithmetic operations like addition, subtraction, multiplication, and division. \nOnly use the calculator tool if you need to perform a calculation.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, StringToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"calculator\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n expression: z\n .string()\n .min(1)\n .describe(\n `The mathematical expression to evaluate (e.g., \"2 + 3 * 4\"). Use Mathjs basic expression syntax. Constants only.`,\n ),\n });\n }\n\n protected limitedEvaluate: typeof evaluate;\n\n constructor({ config, imports, ...options }: CalculatorToolInput = {}) {\n super(options);\n const math = create(all, config);\n this.limitedEvaluate = math.evaluate;\n // Disable use of potentially vulnerable functions\n math.import(\n {\n // most important (hardly any functional impact)\n import: function () {\n throw new Error(\"Function import is disabled\");\n },\n createUnit: function () {\n throw new Error(\"Function createUnit is disabled\");\n },\n reviver: function () {\n throw new Error(\"Function reviver is disabled\");\n },\n\n // extra (has functional impact)\n evaluate: function () {\n throw new Error(\"Function evaluate is disabled\");\n },\n parse: function () {\n throw new Error(\"Function parse is disabled\");\n },\n simplify: function () {\n throw new Error(\"Function simplify is disabled\");\n },\n derivative: function () {\n throw new Error(\"Function derivative is disabled\");\n },\n resolve: function () {\n throw new Error(\"Function resolve is disabled\");\n },\n },\n { override: true, ...imports?.options },\n );\n }\n\n protected async _run({ expression }: ToolInput<this>) {\n const result = this.limitedEvaluate(expression);\n return new StringToolOutput(result);\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Tool, StringToolOutput, ToolEmitter, ToolInput } from './base.cjs';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { ConfigOptions, ImportObject, ImportOptions
|
|
3
|
+
import { evaluate, ConfigOptions, ImportObject, ImportOptions } from 'mathjs';
|
|
4
4
|
import 'ajv';
|
|
5
5
|
import '../context.cjs';
|
|
6
|
-
import '../emitter-
|
|
6
|
+
import '../emitter-D4OcelZ9.cjs';
|
|
7
7
|
import '../internals/types.cjs';
|
|
8
8
|
import '../internals/helpers/guards.cjs';
|
|
9
9
|
import '../internals/serializable.cjs';
|
|
@@ -27,7 +27,7 @@ interface CalculatorToolInput {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* Warning: The CalculatorTool enables the agent (and by proxy the user) to execute arbitrary
|
|
31
31
|
* expressions via mathjs.
|
|
32
32
|
*
|
|
33
33
|
* Please consider the security and stability risks documented at
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Tool, StringToolOutput, ToolEmitter, ToolInput } from './base.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { ConfigOptions, ImportObject, ImportOptions
|
|
3
|
+
import { evaluate, ConfigOptions, ImportObject, ImportOptions } from 'mathjs';
|
|
4
4
|
import 'ajv';
|
|
5
5
|
import '../context.js';
|
|
6
|
-
import '../emitter-
|
|
6
|
+
import '../emitter-kHxkUxco.js';
|
|
7
7
|
import '../internals/types.js';
|
|
8
8
|
import '../internals/helpers/guards.js';
|
|
9
9
|
import '../internals/serializable.js';
|
|
@@ -27,7 +27,7 @@ interface CalculatorToolInput {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* Warning: The CalculatorTool enables the agent (and by proxy the user) to execute arbitrary
|
|
31
31
|
* expressions via mathjs.
|
|
32
32
|
*
|
|
33
33
|
* Please consider the security and stability risks documented at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/calculator.ts"],"names":["CalculatorTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","expression","string","min","describe","limitedEvaluate","config","imports","options","math","create","all","evaluate","import","Error","createUnit","reviver","parse","simplify","derivative","resolve","override","_run","result","StringToolOutput"],"mappings":";;;;;;;AAyBO,MAAMA,uBAAuBC,IAAAA,CAAAA;EAzBpC;;;EA0BEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,CAAA;;EAGEC,OAAAA,GAA0DC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC3FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOC,EAAEC,MAAAA,CAAO;AACdC,MAAAA,UAAAA,EAAYF,EACTG,MAAAA,EAAM,CACNC,IAAI,CAAA,CAAA,CACJC,SACC,CAAA,gHAAA,CAAkH;KAExH,CAAA;AACF;AAEUC,EAAAA,eAAAA;AAEV,EAAA,WAAA,CAAY,EAAEC,MAAAA,EAAQC,OAAAA,EAAS,GAAGC,OAAAA,EAAAA,GAAiC,EAAC,EAAG;AACrE,IAAA,KAAA,CAAMA,OAAAA,CAAAA;AACN,IAAA,MAAMC,IAAAA,GAAOC,MAAAA,CAAOC,GAAAA,EAAKL,MAAAA,CAAAA;AACzB,IAAA,IAAA,CAAKD,kBAAkBI,IAAAA,CAAKG,QAAAA;AAE5BH,IAAAA,IAAAA,CAAKI,MAAAA,CACH;;AAEEA,MAAAA,MAAAA,kBAAQ,MAAA,CAAA,WAAA;AACN,QAAA,MAAM,IAAIC,MAAM,6BAAA,CAAA;
|
|
1
|
+
{"version":3,"sources":["../../src/tools/calculator.ts"],"names":["CalculatorTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","expression","string","min","describe","limitedEvaluate","config","imports","options","math","create","all","evaluate","import","Error","createUnit","reviver","parse","simplify","derivative","resolve","override","_run","result","StringToolOutput"],"mappings":";;;;;;;AAyBO,MAAMA,uBAAuBC,IAAAA,CAAAA;EAzBpC;;;EA0BEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,CAAA;;EAGEC,OAAAA,GAA0DC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC3FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOC,EAAEC,MAAAA,CAAO;AACdC,MAAAA,UAAAA,EAAYF,EACTG,MAAAA,EAAM,CACNC,IAAI,CAAA,CAAA,CACJC,SACC,CAAA,gHAAA,CAAkH;KAExH,CAAA;AACF,EAAA;AAEUC,EAAAA,eAAAA;AAEV,EAAA,WAAA,CAAY,EAAEC,MAAAA,EAAQC,OAAAA,EAAS,GAAGC,OAAAA,EAAAA,GAAiC,EAAC,EAAG;AACrE,IAAA,KAAA,CAAMA,OAAAA,CAAAA;AACN,IAAA,MAAMC,IAAAA,GAAOC,MAAAA,CAAOC,GAAAA,EAAKL,MAAAA,CAAAA;AACzB,IAAA,IAAA,CAAKD,kBAAkBI,IAAAA,CAAKG,QAAAA;AAE5BH,IAAAA,IAAAA,CAAKI,MAAAA,CACH;;AAEEA,MAAAA,MAAAA,kBAAQ,MAAA,CAAA,WAAA;AACN,QAAA,MAAM,IAAIC,MAAM,6BAAA,CAAA;MAClB,CAAA,EAFQ,QAAA,CAAA;AAGRC,MAAAA,UAAAA,kBAAY,MAAA,CAAA,WAAA;AACV,QAAA,MAAM,IAAID,MAAM,iCAAA,CAAA;MAClB,CAAA,EAFY,YAAA,CAAA;AAGZE,MAAAA,OAAAA,kBAAS,MAAA,CAAA,WAAA;AACP,QAAA,MAAM,IAAIF,MAAM,8BAAA,CAAA;MAClB,CAAA,EAFS,SAAA,CAAA;;AAKTF,MAAAA,QAAAA,kBAAU,MAAA,CAAA,WAAA;AACR,QAAA,MAAM,IAAIE,MAAM,+BAAA,CAAA;MAClB,CAAA,EAFU,UAAA,CAAA;AAGVG,MAAAA,KAAAA,kBAAO,MAAA,CAAA,WAAA;AACL,QAAA,MAAM,IAAIH,MAAM,4BAAA,CAAA;MAClB,CAAA,EAFO,OAAA,CAAA;AAGPI,MAAAA,QAAAA,kBAAU,MAAA,CAAA,WAAA;AACR,QAAA,MAAM,IAAIJ,MAAM,+BAAA,CAAA;MAClB,CAAA,EAFU,UAAA,CAAA;AAGVK,MAAAA,UAAAA,kBAAY,MAAA,CAAA,WAAA;AACV,QAAA,MAAM,IAAIL,MAAM,iCAAA,CAAA;MAClB,CAAA,EAFY,YAAA,CAAA;AAGZM,MAAAA,OAAAA,kBAAS,MAAA,CAAA,WAAA;AACP,QAAA,MAAM,IAAIN,MAAM,8BAAA,CAAA;MAClB,CAAA,EAFS,SAAA;KAGX,EACA;MAAEO,QAAAA,EAAU,IAAA;AAAM,MAAA,GAAGd,OAAAA,EAASC;KAAQ,CAAA;AAE1C,EAAA;EAEA,MAAgBc,IAAAA,CAAK,EAAErB,UAAAA,EAAU,EAAqB;AACpD,IAAA,MAAMsB,MAAAA,GAAS,IAAA,CAAKlB,eAAAA,CAAgBJ,UAAAA,CAAAA;AACpC,IAAA,OAAO,IAAIuB,iBAAiBD,MAAAA,CAAAA;AAC9B,EAAA;AACF","file":"calculator.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolEmitter, StringToolOutput, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { create, all, evaluate, ImportOptions, ImportObject, ConfigOptions } from \"mathjs\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface CalculatorToolInput {\n config?: ConfigOptions;\n imports?: {\n entries: ImportObject | ImportObject[];\n options?: ImportOptions;\n };\n}\n\n/**\n * Warning: The CalculatorTool enables the agent (and by proxy the user) to execute arbitrary\n * expressions via mathjs.\n *\n * Please consider the security and stability risks documented at\n * https://mathjs.org/docs/expressions/security.html before using this tool.\n */\nexport class CalculatorTool extends Tool<StringToolOutput> {\n name = \"Calculator\";\n description = `A calculator tool that performs basic arithmetic operations like addition, subtraction, multiplication, and division. \nOnly use the calculator tool if you need to perform a calculation.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, StringToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"calculator\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n expression: z\n .string()\n .min(1)\n .describe(\n `The mathematical expression to evaluate (e.g., \"2 + 3 * 4\"). Use Mathjs basic expression syntax. Constants only.`,\n ),\n });\n }\n\n protected limitedEvaluate: typeof evaluate;\n\n constructor({ config, imports, ...options }: CalculatorToolInput = {}) {\n super(options);\n const math = create(all, config);\n this.limitedEvaluate = math.evaluate;\n // Disable use of potentially vulnerable functions\n math.import(\n {\n // most important (hardly any functional impact)\n import: function () {\n throw new Error(\"Function import is disabled\");\n },\n createUnit: function () {\n throw new Error(\"Function createUnit is disabled\");\n },\n reviver: function () {\n throw new Error(\"Function reviver is disabled\");\n },\n\n // extra (has functional impact)\n evaluate: function () {\n throw new Error(\"Function evaluate is disabled\");\n },\n parse: function () {\n throw new Error(\"Function parse is disabled\");\n },\n simplify: function () {\n throw new Error(\"Function simplify is disabled\");\n },\n derivative: function () {\n throw new Error(\"Function derivative is disabled\");\n },\n resolve: function () {\n throw new Error(\"Function resolve is disabled\");\n },\n },\n { override: true, ...imports?.options },\n );\n }\n\n protected async _run({ expression }: ToolInput<this>) {\n const result = this.limitedEvaluate(expression);\n return new StringToolOutput(result);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/custom.ts"],"names":["CustomToolCreateError","FrameworkError","CustomToolExecuteError","toolOptionsSchema","z","object","codeInterpreter","url","string","connectionOptions","any","optional","sourceCode","min","name","description","inputSchema","passthrough","CustomTool","Tool","emitter","Emitter","root","child","namespace","creator","options","register","validate","_run","input","run","result","callCodeInterpreter","body","tool_source_code","tool_input_json","JSON","stringify","env","merge","omitUndefined","signal","stderr","StringToolOutput","tool_output_json","e","ToolError","message","loadSnapshot","snapshot","fromSourceCode","error_messages","join","tool_name","tool_description","parse","tool_input_schema_json"],"mappings":";;;;;;;;;;;;;AAuBO,MAAMA,8BAA8BC,yBAAAA,CAAAA;EAvB3C;;;AAuB2D;AACpD,MAAMC,+BAA+BD,yBAAAA,CAAAA;EAxB5C;;;AAwB4D;AAE5D,MAAME,iBAAAA,GAAoBC,MACvBC,MAAAA,CAAO;AACNC,EAAAA,eAAAA,EAAiBF,MAAEC,MAAAA,CAAO;IACxBE,GAAAA,EAAKH,KAAAA,CAAEI,MAAAA,EAAM,CAAGD,GAAAA,EAAG;IACnBE,iBAAAA,EAAmBL,KAAAA,CAAEM,GAAAA,EAAG,CAAGC,QAAAA;GAC7B,CAAA;AACAC,EAAAA,UAAAA,EAAYR,KAAAA,CAAEI,MAAAA,EAAM,CAAGK,GAAAA,CAAI,CAAA,CAAA;AAC3BC,EAAAA,IAAAA,EAAMV,KAAAA,CAAEI,MAAAA,EAAM,CAAGK,GAAAA,CAAI,CAAA,CAAA;AACrBE,EAAAA,WAAAA,EAAaX,KAAAA,CAAEI,MAAAA,EAAM,CAAGK,GAAAA,CAAI,CAAA,CAAA;AAC5BG,EAAAA,WAAAA,EAAaZ,MAAEM,GAAAA;AACjB,CAAA,EACCO,WAAAA,EAAW;AASP,MAAMC,mBAAmBC,aAAAA,CAAAA;EA9ChC;;;AA+CEL,EAAAA,IAAAA;AACAC,EAAAA,WAAAA;EAEgBK,OAAAA,GAA0DC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC3FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEOT,WAAAA,GAAc;AACnB,IAAA,OAAO,KAAKU,OAAAA,CAAQV,WAAAA;AACtB;EAEA;AACE,IAAA,IAAA,CAAKW,QAAAA,EAAQ;AACf;AAEA,EAAA,WAAA,CAAmBD,OAAAA,EAA4B;AAC7CE,IAAAA,oBAAAA,CAASF,SAASvB,iBAAAA,CAAAA;AAClB,IAAA,KAAA,CAAMuB,OAAAA,CAAAA;AACN,IAAA,IAAA,CAAKZ,OAAOY,OAAAA,CAAQZ,IAAAA;AACpB,IAAA,IAAA,CAAKC,cAAcW,OAAAA,CAAQX,WAAAA;AAC7B;EAEA,MAAgBc,IAAAA,CACdC,KAAAA,EACAJ,OAAAA,EACAK,GAAAA,EACA;AACA,IAAA,IAAI;AACF,MAAA,MAAMC,MAAAA,GAAS,MAAMC,8BAAAA,CAAoB;AACvC1B,QAAAA,GAAAA,EAAK,CAAA,EAAG,IAAA,CAAKmB,OAAAA,CAAQpB,eAAAA,CAAgBC,GAAG,CAAA,uBAAA,CAAA;QACxC2B,IAAAA,EAAM;AACJC,UAAAA,gBAAAA,EAAkB,KAAKT,OAAAA,CAAQd,UAAAA;UAC/BwB,eAAAA,EAAiBC,IAAAA,CAAKC,UAAUR,KAAAA,CAAAA;AAChCS,UAAAA,GAAAA,EAAKC,YAAAA,CAAMC,wBAAAA,CAAc,IAAA,CAAKf,OAAAA,CAAQa,GAAAA,IAAO,EAAC,CAAA,EAAIE,wBAAAA,CAAcf,OAAAA,CAAQa,GAAAA,IAAO,EAAC,CAAA;AAClF,SAAA;AACAG,QAAAA,MAAAA,EAAQX,GAAAA,CAAIW;OACd,CAAA;AAEA,MAAA,IAAIV,OAAOW,MAAAA,EAAQ;AACjB,QAAA,MAAM,IAAIzC,sBAAAA,CAAuB8B,MAAAA,CAAOW,MAAM,CAAA;AAChD;AAEA,MAAA,OAAO,IAAIC,yBAAAA,CAAiBZ,MAAAA,CAAOa,gBAAgB,CAAA;AACrD,
|
|
1
|
+
{"version":3,"sources":["../../src/tools/custom.ts"],"names":["CustomToolCreateError","FrameworkError","CustomToolExecuteError","toolOptionsSchema","z","object","codeInterpreter","url","string","connectionOptions","any","optional","sourceCode","min","name","description","inputSchema","passthrough","CustomTool","Tool","emitter","Emitter","root","child","namespace","creator","options","register","validate","_run","input","run","result","callCodeInterpreter","body","tool_source_code","tool_input_json","JSON","stringify","env","merge","omitUndefined","signal","stderr","StringToolOutput","tool_output_json","e","ToolError","message","loadSnapshot","snapshot","fromSourceCode","error_messages","join","tool_name","tool_description","parse","tool_input_schema_json"],"mappings":"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","file":"custom.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n StringToolOutput,\n Tool,\n ToolInput,\n} from \"@/tools/base.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { z } from \"zod\";\nimport { validate } from \"@/internals/helpers/general.js\";\nimport { callCodeInterpreter, CodeInterpreterOptions } from \"./python/python.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { ToolError } from \"@/tools/base.js\";\nimport { merge } from \"remeda\";\nimport { omitUndefined } from \"@/internals/helpers/object.js\";\n\nexport class CustomToolCreateError extends FrameworkError {}\nexport class CustomToolExecuteError extends FrameworkError {}\n\nconst toolOptionsSchema = z\n .object({\n codeInterpreter: z.object({\n url: z.string().url(),\n connectionOptions: z.any().optional(),\n }),\n sourceCode: z.string().min(1),\n name: z.string().min(1),\n description: z.string().min(1),\n inputSchema: z.any(),\n })\n .passthrough();\n\ntype CustomToolEnv = Record<string, string | boolean | null | undefined | number>;\n\nexport type CustomToolOptions = z.output<typeof toolOptionsSchema> &\n BaseToolOptions & { env?: CustomToolEnv };\n\nexport type CustomToolRunOptions = Pick<CustomToolOptions, \"env\"> & BaseToolRunOptions;\n\nexport class CustomTool extends Tool<StringToolOutput, CustomToolOptions, CustomToolRunOptions> {\n name: string;\n description: string;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, StringToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"custom\"],\n creator: this,\n });\n\n public inputSchema() {\n return this.options.inputSchema;\n }\n\n static {\n this.register();\n }\n\n public constructor(options: CustomToolOptions) {\n validate(options, toolOptionsSchema);\n super(options);\n this.name = options.name;\n this.description = options.description;\n }\n\n protected async _run(\n input: any,\n options: Partial<CustomToolRunOptions>,\n run: RunContext<typeof this>,\n ) {\n try {\n const result = await callCodeInterpreter({\n url: `${this.options.codeInterpreter.url}/v1/execute-custom-tool`,\n body: {\n tool_source_code: this.options.sourceCode,\n tool_input_json: JSON.stringify(input),\n env: merge(omitUndefined(this.options.env ?? {}), omitUndefined(options.env ?? {})),\n },\n signal: run.signal,\n });\n\n if (result.stderr) {\n throw new CustomToolExecuteError(result.stderr);\n }\n\n return new StringToolOutput(result.tool_output_json);\n } catch (e) {\n if (e instanceof ToolError) {\n throw new CustomToolExecuteError(e.message, [e]);\n } else {\n throw e;\n }\n }\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n super.loadSnapshot(snapshot);\n }\n\n static async fromSourceCode(\n { env, ...codeInterpreter }: CodeInterpreterOptions & Pick<CustomToolOptions, \"env\">,\n sourceCode: string,\n ) {\n try {\n const result = await callCodeInterpreter({\n url: `${codeInterpreter.url}/v1/parse-custom-tool`,\n body: {\n tool_source_code: sourceCode,\n },\n });\n\n if (result.error_messages) {\n throw new CustomToolCreateError(result.error_messages.join(\"\\n\"));\n }\n\n return new CustomTool({\n codeInterpreter,\n sourceCode,\n name: result.tool_name,\n description: result.tool_description,\n inputSchema: JSON.parse(result.tool_input_schema_json),\n env,\n });\n } catch (e) {\n if (e instanceof ToolError) {\n throw new CustomToolCreateError(e.message, [e]);\n } else {\n throw e;\n }\n }\n }\n}\n"]}
|
package/dist/tools/custom.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Tool, StringToolOutput, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from './base.cjs';
|
|
2
2
|
import { FrameworkError } from '../errors.cjs';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { CodeInterpreterOptions } from './python/python.cjs';
|
|
@@ -11,14 +11,14 @@ import 'promise-based-task';
|
|
|
11
11
|
import '../cache/base.cjs';
|
|
12
12
|
import '../internals/helpers/schema.cjs';
|
|
13
13
|
import 'zod-to-json-schema';
|
|
14
|
-
import '../emitter-
|
|
14
|
+
import '../emitter-D4OcelZ9.cjs';
|
|
15
15
|
import '../internals/helpers/promise.cjs';
|
|
16
16
|
import '../template.cjs';
|
|
17
17
|
import './python/storage.cjs';
|
|
18
18
|
import 'fs';
|
|
19
19
|
import './python/output.cjs';
|
|
20
20
|
import 'node:tls';
|
|
21
|
-
import '../chat-
|
|
21
|
+
import '../chat-C20nYj46.cjs';
|
|
22
22
|
import '../backend/message.cjs';
|
|
23
23
|
import 'ai';
|
|
24
24
|
import '../backend/constants.cjs';
|