beeai-framework 0.1.10 → 0.1.11
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/README.md +18 -6
- package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.d.cts +7 -6
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +7 -6
- 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.d.cts +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.d.ts +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 +15 -4
- package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +15 -4
- 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 +9 -8
- package/dist/adapters/anthropic/backend/chat.d.ts +9 -8
- 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.d.cts +1 -1
- package/dist/adapters/anthropic/backend/client.d.ts +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 +15 -4
- package/dist/adapters/anthropic/backend/embedding.d.ts +15 -4
- 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 +9 -8
- package/dist/adapters/azure-openai/backend/chat.d.ts +9 -8
- 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.d.cts +1 -1
- package/dist/adapters/azure-openai/backend/client.d.ts +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 +15 -4
- package/dist/adapters/azure-openai/backend/embedding.d.ts +15 -4
- 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 +12 -7
- package/dist/adapters/dummy/backend/chat.d.ts +12 -7
- 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 +15 -3
- package/dist/adapters/dummy/backend/embedding.d.ts +15 -3
- 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 +9 -8
- package/dist/adapters/google-vertex/backend/chat.d.ts +9 -8
- 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.d.cts +1 -1
- package/dist/adapters/google-vertex/backend/client.d.ts +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 +15 -4
- package/dist/adapters/google-vertex/backend/embedding.d.ts +15 -4
- 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 +9 -8
- package/dist/adapters/groq/backend/chat.d.ts +9 -8
- 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.d.cts +1 -1
- package/dist/adapters/groq/backend/client.d.ts +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 +15 -4
- package/dist/adapters/groq/backend/embedding.d.ts +15 -4
- package/dist/adapters/groq/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/chat.cjs +5 -3
- package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
- package/dist/adapters/langchain/backend/chat.d.cts +12 -7
- package/dist/adapters/langchain/backend/chat.d.ts +12 -7
- package/dist/adapters/langchain/backend/chat.js +5 -3
- package/dist/adapters/langchain/backend/chat.js.map +1 -1
- package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
- package/dist/adapters/langchain/backend/embedding.d.cts +15 -3
- package/dist/adapters/langchain/backend/embedding.d.ts +15 -3
- package/dist/adapters/langchain/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/tools.cjs.map +1 -1
- package/dist/adapters/langchain/tools.d.cts +1 -1
- package/dist/adapters/langchain/tools.d.ts +1 -1
- package/dist/adapters/langchain/tools.js.map +1 -1
- package/dist/adapters/ollama/backend/chat.cjs +4 -0
- package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
- package/dist/adapters/ollama/backend/chat.d.cts +10 -8
- package/dist/adapters/ollama/backend/chat.d.ts +10 -8
- package/dist/adapters/ollama/backend/chat.js +4 -0
- 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.d.cts +1 -1
- package/dist/adapters/ollama/backend/client.d.ts +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 +15 -4
- package/dist/adapters/ollama/backend/embedding.d.ts +15 -4
- 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 +7 -6
- package/dist/adapters/openai/backend/chat.d.ts +7 -6
- 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.d.cts +1 -1
- package/dist/adapters/openai/backend/client.d.ts +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 +15 -4
- package/dist/adapters/openai/backend/embedding.d.ts +15 -4
- package/dist/adapters/openai/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/chat.cjs +41 -7
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.d.cts +12 -7
- package/dist/adapters/vercel/backend/chat.d.ts +12 -7
- package/dist/adapters/vercel/backend/chat.js +44 -10
- 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 +14 -3
- package/dist/adapters/vercel/backend/embedding.d.ts +14 -3
- package/dist/adapters/vercel/backend/embedding.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.cjs +25 -4
- package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +13 -7
- package/dist/adapters/watsonx/backend/chat.d.ts +13 -7
- package/dist/adapters/watsonx/backend/chat.js +25 -4
- 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.d.cts +1 -1
- package/dist/adapters/watsonx/backend/client.d.ts +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 +15 -3
- package/dist/adapters/watsonx/backend/embedding.d.ts +15 -3
- package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
- package/dist/{agent-COg8SPbf.d.cts → agent-Ca5UE2P1.d.cts} +3 -3
- package/dist/{agent-Dv5YSk8H.d.ts → agent-CgsoqVL5.d.ts} +3 -3
- 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/remote/agent.cjs.map +1 -1
- package/dist/agents/experimental/remote/agent.d.cts +2 -2
- package/dist/agents/experimental/remote/agent.d.ts +2 -2
- package/dist/agents/experimental/remote/agent.js.map +1 -1
- package/dist/agents/experimental/replan/agent.cjs.map +1 -1
- package/dist/agents/experimental/replan/agent.d.cts +6 -6
- package/dist/agents/experimental/replan/agent.d.ts +6 -6
- 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 +6 -6
- package/dist/agents/experimental/streamlit/agent.d.ts +6 -6
- package/dist/agents/experimental/streamlit/agent.js.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.d.cts +1 -1
- package/dist/agents/experimental/streamlit/prompts.d.ts +1 -1
- package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
- package/dist/agents/react/agent.cjs.map +1 -1
- package/dist/agents/react/agent.d.cts +6 -6
- package/dist/agents/react/agent.d.ts +6 -6
- 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 +2 -2
- package/dist/agents/react/prompts.d.ts +2 -2
- 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 +6 -6
- package/dist/agents/react/runners/base.d.ts +6 -6
- 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 +2 -2
- package/dist/agents/react/runners/deep-think/prompts.d.ts +2 -2
- 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 +7 -7
- package/dist/agents/react/runners/deep-think/runner.d.ts +7 -7
- 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 +9 -9
- package/dist/agents/react/runners/default/runner.d.ts +9 -9
- 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 +2 -2
- package/dist/agents/react/runners/granite/prompts.d.ts +2 -2
- 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 +7 -7
- package/dist/agents/react/runners/granite/runner.d.ts +7 -7
- package/dist/agents/react/runners/granite/runner.js.map +1 -1
- package/dist/agents/react/types.d.cts +5 -5
- package/dist/agents/react/types.d.ts +5 -5
- package/dist/agents/toolCalling/agent.cjs +33 -12
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.d.cts +7 -6
- package/dist/agents/toolCalling/agent.d.ts +7 -6
- package/dist/agents/toolCalling/agent.js +35 -14
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/agents/toolCalling/prompts.cjs +3 -2
- package/dist/agents/toolCalling/prompts.cjs.map +1 -1
- package/dist/agents/toolCalling/prompts.d.cts +1 -1
- package/dist/agents/toolCalling/prompts.d.ts +1 -1
- package/dist/agents/toolCalling/prompts.js +3 -2
- package/dist/agents/toolCalling/prompts.js.map +1 -1
- package/dist/agents/toolCalling/types.d.cts +2 -2
- package/dist/agents/toolCalling/types.d.ts +2 -2
- 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 +6 -5
- package/dist/backend/backend.d.ts +6 -5
- package/dist/backend/backend.js.map +1 -1
- package/dist/backend/chat.cjs +61 -3
- package/dist/backend/chat.cjs.map +1 -1
- package/dist/backend/chat.d.cts +17 -138
- package/dist/backend/chat.d.ts +17 -138
- package/dist/backend/chat.js +64 -6
- package/dist/backend/chat.js.map +1 -1
- package/dist/backend/client.cjs.map +1 -1
- package/dist/backend/client.d.cts +1 -1
- package/dist/backend/client.d.ts +1 -1
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/constants.cjs +5 -0
- package/dist/backend/constants.cjs.map +1 -1
- package/dist/backend/constants.d.cts +6 -1
- package/dist/backend/constants.d.ts +6 -1
- package/dist/backend/constants.js +5 -0
- package/dist/backend/constants.js.map +1 -1
- package/dist/backend/core.d.cts +5 -4
- package/dist/backend/core.d.ts +5 -4
- package/dist/backend/embedding.cjs.map +1 -1
- package/dist/backend/embedding.d.cts +14 -2
- package/dist/backend/embedding.d.ts +14 -2
- package/dist/backend/embedding.js.map +1 -1
- package/dist/backend/errors.cjs.map +1 -1
- package/dist/backend/errors.d.cts +1 -1
- package/dist/backend/errors.d.ts +1 -1
- package/dist/backend/errors.js.map +1 -1
- package/dist/backend/message.cjs.map +1 -1
- package/dist/backend/message.d.cts +1 -1
- package/dist/backend/message.d.ts +1 -1
- package/dist/backend/message.js.map +1 -1
- package/dist/backend/utils.cjs +35 -0
- package/dist/backend/utils.cjs.map +1 -1
- package/dist/backend/utils.d.cts +20 -28
- package/dist/backend/utils.d.ts +20 -28
- package/dist/backend/utils.js +35 -2
- package/dist/backend/utils.js.map +1 -1
- package/dist/{base-DHhpWHQm.d.ts → base-BOCDDBvG.d.ts} +2 -2
- package/dist/{base-Csr9guq2.d.cts → base-szR2Izbt.d.cts} +2 -2
- package/dist/cache/base.cjs.map +1 -1
- package/dist/cache/base.d.cts +1 -1
- package/dist/cache/base.d.ts +1 -1
- package/dist/cache/base.js.map +1 -1
- package/dist/cache/decoratorCache.cjs.map +1 -1
- package/dist/cache/decoratorCache.d.cts +1 -1
- package/dist/cache/decoratorCache.d.ts +1 -1
- package/dist/cache/decoratorCache.js.map +1 -1
- package/dist/cache/fileCache.cjs.map +1 -1
- package/dist/cache/fileCache.d.cts +1 -1
- package/dist/cache/fileCache.d.ts +1 -1
- package/dist/cache/fileCache.js.map +1 -1
- package/dist/cache/nullCache.cjs.map +1 -1
- package/dist/cache/nullCache.d.cts +1 -1
- package/dist/cache/nullCache.d.ts +1 -1
- package/dist/cache/nullCache.js.map +1 -1
- package/dist/cache/slidingCache.cjs.map +1 -1
- package/dist/cache/slidingCache.d.cts +1 -1
- package/dist/cache/slidingCache.d.ts +1 -1
- package/dist/cache/slidingCache.js.map +1 -1
- package/dist/cache/unconstrainedCache.cjs.map +1 -1
- package/dist/cache/unconstrainedCache.d.cts +1 -1
- package/dist/cache/unconstrainedCache.d.ts +1 -1
- package/dist/cache/unconstrainedCache.js.map +1 -1
- package/dist/chat-BdN8hGWn.d.ts +174 -0
- package/dist/chat-DvMzAHj6.d.cts +174 -0
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +2 -2
- package/dist/context.d.ts +2 -2
- 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/errors.cjs.map +1 -1
- package/dist/emitter/errors.d.cts +1 -1
- package/dist/emitter/errors.d.ts +1 -1
- package/dist/emitter/errors.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.d.cts +1 -1
- package/dist/emitter/utils.d.ts +1 -1
- package/dist/emitter/utils.js.map +1 -1
- package/dist/{emitter-l0W9gC1A.d.ts → emitter-C3dO-s2P.d.ts} +3 -3
- package/dist/{emitter-BWtGHYn0.d.cts → emitter-D5Mu0EEH.d.cts} +3 -3
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.cts +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.cts +4 -6
- package/dist/index.d.ts +4 -6
- package/dist/internals/env.cjs.map +1 -1
- package/dist/internals/env.d.cts +1 -1
- package/dist/internals/env.d.ts +1 -1
- package/dist/internals/env.js.map +1 -1
- package/dist/internals/fetcher.cjs.map +1 -1
- package/dist/internals/fetcher.d.cts +2 -2
- package/dist/internals/fetcher.d.ts +2 -2
- package/dist/internals/fetcher.js.map +1 -1
- package/dist/internals/helpers/array.cjs.map +1 -1
- package/dist/internals/helpers/array.d.cts +1 -1
- package/dist/internals/helpers/array.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/cancellation.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/counter.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/general.d.ts +1 -1
- package/dist/internals/helpers/general.js.map +1 -1
- package/dist/internals/helpers/guards.cjs.map +1 -1
- package/dist/internals/helpers/guards.d.cts +1 -1
- package/dist/internals/helpers/guards.d.ts +1 -1
- package/dist/internals/helpers/guards.js.map +1 -1
- package/dist/internals/helpers/hash.cjs.map +1 -1
- package/dist/internals/helpers/hash.d.cts +1 -1
- package/dist/internals/helpers/hash.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/map.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/math.d.ts +1 -1
- package/dist/internals/helpers/math.js.map +1 -1
- package/dist/internals/helpers/number.cjs.map +1 -1
- package/dist/internals/helpers/number.d.cts +1 -1
- package/dist/internals/helpers/number.d.ts +1 -1
- package/dist/internals/helpers/number.js.map +1 -1
- package/dist/internals/helpers/object.cjs.map +1 -1
- package/dist/internals/helpers/object.d.cts +1 -1
- package/dist/internals/helpers/object.d.ts +1 -1
- package/dist/internals/helpers/object.js.map +1 -1
- package/dist/internals/helpers/paginate.cjs.map +1 -1
- package/dist/internals/helpers/paginate.d.cts +1 -1
- package/dist/internals/helpers/paginate.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/promise.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/prototype.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/retry.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/retryable.d.ts +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 +1 -1
- package/dist/internals/helpers/schema.d.ts +1 -1
- package/dist/internals/helpers/schema.js.map +1 -1
- package/dist/internals/helpers/stream.cjs.map +1 -1
- package/dist/internals/helpers/stream.d.cts +1 -1
- package/dist/internals/helpers/stream.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/string.d.ts +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.d.cts +1 -1
- package/dist/internals/helpers/weakRef.d.ts +1 -1
- package/dist/internals/helpers/weakRef.js.map +1 -1
- package/dist/internals/serializable.cjs.map +1 -1
- package/dist/internals/serializable.d.cts +1 -1
- package/dist/internals/serializable.d.ts +1 -1
- package/dist/internals/serializable.js.map +1 -1
- package/dist/internals/types.cjs.map +1 -1
- package/dist/internals/types.d.cts +1 -1
- package/dist/internals/types.d.ts +1 -1
- package/dist/internals/types.js.map +1 -1
- package/dist/logger/logger.cjs.map +1 -1
- 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 +4 -4
- package/dist/memory/summarizeMemory.d.ts +4 -4
- 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/parsers/errors.cjs.map +1 -1
- package/dist/parsers/errors.d.cts +1 -1
- package/dist/parsers/errors.d.ts +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 +2 -2
- package/dist/parsers/linePrefix.d.ts +2 -2
- package/dist/parsers/linePrefix.js.map +1 -1
- package/dist/serializer/error.cjs.map +1 -1
- package/dist/serializer/error.d.cts +1 -1
- package/dist/serializer/error.d.ts +1 -1
- package/dist/serializer/error.js.map +1 -1
- 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.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-VYDhdryk.d.ts → serializer-BswFRdT8.d.ts} +2 -2
- package/dist/{serializer-CJx5ZpUx.d.cts → serializer-Dz4AIM2O.d.cts} +2 -2
- package/dist/template.cjs.map +1 -1
- package/dist/template.d.cts +1 -1
- package/dist/template.d.ts +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 +2 -2
- package/dist/tools/calculator.d.ts +2 -2
- package/dist/tools/calculator.js.map +1 -1
- package/dist/tools/custom.cjs.map +1 -1
- package/dist/tools/custom.d.cts +5 -5
- package/dist/tools/custom.d.ts +5 -5
- package/dist/tools/custom.js.map +1 -1
- package/dist/tools/database/elasticsearch.cjs.map +1 -1
- package/dist/tools/database/elasticsearch.d.cts +2 -2
- package/dist/tools/database/elasticsearch.d.ts +2 -2
- package/dist/tools/database/elasticsearch.js.map +1 -1
- package/dist/tools/database/metadata.cjs.map +1 -1
- package/dist/tools/database/metadata.d.cts +1 -1
- package/dist/tools/database/metadata.d.ts +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 +2 -2
- package/dist/tools/database/milvus.d.ts +2 -2
- package/dist/tools/database/milvus.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/llm.cjs.map +1 -1
- package/dist/tools/llm.d.cts +5 -5
- package/dist/tools/llm.d.ts +5 -5
- 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 +1 -1
- package/dist/tools/openapi.d.ts +1 -1
- package/dist/tools/openapi.js.map +1 -1
- package/dist/tools/python/output.cjs.map +1 -1
- package/dist/tools/python/output.d.cts +2 -2
- package/dist/tools/python/output.d.ts +2 -2
- package/dist/tools/python/output.js.map +1 -1
- package/dist/tools/python/python.cjs +3 -3
- package/dist/tools/python/python.cjs.map +1 -1
- package/dist/tools/python/python.d.cts +4 -4
- package/dist/tools/python/python.d.ts +4 -4
- package/dist/tools/python/python.js +3 -3
- package/dist/tools/python/python.js.map +1 -1
- package/dist/tools/python/storage.cjs.map +1 -1
- package/dist/tools/python/storage.d.cts +1 -1
- package/dist/tools/python/storage.d.ts +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 +1 -1
- package/dist/tools/search/googleSearch.d.ts +1 -1
- package/dist/tools/search/googleSearch.js.map +1 -1
- package/dist/tools/search/searXNGSearch.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 +1 -1
- package/dist/tools/search/wikipedia.d.ts +1 -1
- 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/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 +1 -1
- package/dist/tools/web/webCrawler.d.ts +1 -1
- package/dist/tools/web/webCrawler.js.map +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.cts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/workflows/agent.cjs.map +1 -1
- package/dist/workflows/agent.d.cts +6 -6
- package/dist/workflows/agent.d.ts +6 -6
- 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 +18 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["similarity.ts"],"names":["documentSchema","z","object","text","string","passthrough","SimilarityToolOutput","JSONToolOutput","SimilarityTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","query","documents","array","register","_run","options","run","pipe","provider","map","score","idx","documentIndex","filter","minScore","sortBy","prop","take","maxResults","Infinity","data","document","index"],"mappings":";;;;;;;AA6BA,MAAMA,cAAAA,GAAiBC,EAAEC,MAAO,CAAA;AAAEC,EAAAA,IAAAA,EAAMC,MAAAA;AAAS,CAAA,EAAGC,WAAW,EAAA;AAgCxD,MAAMC,6BAA6BC,cAAAA,CAAAA;EA7D1C;;;AA6DkF;AAE3E,MAAMC,uBAAyCC,IAAAA,CAAAA;EA/DtD;;;EAoEEC,IAAO,GAAA,YAAA;EACPC,WAAc,GAAA,8CAAA;EAEEC,OAA8DC,GAAAA,OAAAA,CAAQC,KAAKC,KAAM,CAAA;IAC/FC,SAAW,EAAA;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAS,EAAA;GACX,CAAA;EAEAC,WAAc,GAAA;AACZ,IAAA,OAAOjB,EAAEC,MAAO,CAAA;AAAEiB,MAAAA,KAAAA,EAAOlB,EAAEG,MAAM,EAAA;MAAIgB,SAAWnB,EAAAA,CAAAA,CAAEoB,MAAMrB,cAAAA;KAAgB,CAAA;AAC1E;EAEA;AACE,IAAA,IAAA,CAAKsB,QAAQ,EAAA;AACf;AAEA,EAAA,MAAgBC,KACd,EAAEJ,KAAAA,EAAOC,SAAS,EAAA,EAClBI,SACAC,GACA,EAAA;AACA,IAAA,OAAOC,IACL,CAAA,MAAM,IAAKF,CAAAA,OAAAA,CAAQG,QACjB,CAAA;AACER,MAAAA,KAAAA;AACAC,MAAAA;KAEFI,EAAAA,OAAAA,EAASG,UACTF,GAAAA,CAAAA,EAEFG,IAAI,CAAC,EAAEC,KAAK,EAAA,EAAIC,GAAS,MAAA;MACvBC,aAAeD,EAAAA,GAAAA;AACfD,MAAAA;KACF,CAAA,CAAA,EACAG,MAAO,CAAA,CAAC,EAAEH,KAAAA,EAAYA,KAAAA,KAAAA,KAAUL,OAAQS,CAAAA,QAAAA,IAAY,CAAQ,QAAA,CAAA,CAAA,EAC5DC,MAAO,CAAA;AAACC,MAAAA,IAAAA,CAAK,OAAA,CAAA;AAAU,MAAA;AAAO,KAAA,CAAA,EAC9BC,KAAKZ,OAASa,EAAAA,UAAAA,IAAc,KAAKb,OAAQa,CAAAA,UAAAA,IAAcC,QAAAA,CACvD,EAAA,CAACC,IACC,KAAA,IAAIjC,qBACFiC,IAAKX,CAAAA,GAAAA,CAAI,CAAC,EAAEG,aAAAA,EAAeF,OAAa,MAAA;AACtCW,MAAAA,QAAAA,EAAUpB,UAAUW,aAAAA,CAAAA;MACpBU,KAAOV,EAAAA,aAAAA;AACPF,MAAAA;AACF,KAAA,CAAA,CAAA,CAAA,CAAA;AAGR;AACF","file":"similarity.js","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["similarity.ts"],"names":["documentSchema","z","object","text","string","passthrough","SimilarityToolOutput","JSONToolOutput","SimilarityTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","query","documents","array","register","_run","options","run","pipe","provider","map","score","idx","documentIndex","filter","minScore","sortBy","prop","take","maxResults","Infinity","data","document","index"],"mappings":";;;;;;;AA6BA,MAAMA,cAAAA,GAAiBC,EAAEC,MAAO,CAAA;AAAEC,EAAAA,IAAAA,EAAMC,MAAAA;AAAS,CAAA,EAAGC,WAAW,EAAA;AAgCxD,MAAMC,6BAA6BC,cAAAA,CAAAA;EA7D1C;;;AA6DkF;AAE3E,MAAMC,uBAAyCC,IAAAA,CAAAA;EA/DtD;;;EAoEEC,IAAO,GAAA,YAAA;EACPC,WAAc,GAAA,8CAAA;EAEEC,OAA8DC,GAAAA,OAAAA,CAAQC,KAAKC,KAAM,CAAA;IAC/FC,SAAW,EAAA;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAS,EAAA;GACX,CAAA;EAEAC,WAAc,GAAA;AACZ,IAAA,OAAOjB,EAAEC,MAAO,CAAA;AAAEiB,MAAAA,KAAAA,EAAOlB,EAAEG,MAAM,EAAA;MAAIgB,SAAWnB,EAAAA,CAAAA,CAAEoB,MAAMrB,cAAAA;KAAgB,CAAA;AAC1E;EAEA;AACE,IAAA,IAAA,CAAKsB,QAAQ,EAAA;AACf;AAEA,EAAA,MAAgBC,KACd,EAAEJ,KAAAA,EAAOC,SAAS,EAAA,EAClBI,SACAC,GACA,EAAA;AACA,IAAA,OAAOC,IACL,CAAA,MAAM,IAAKF,CAAAA,OAAAA,CAAQG,QACjB,CAAA;AACER,MAAAA,KAAAA;AACAC,MAAAA;KAEFI,EAAAA,OAAAA,EAASG,UACTF,GAAAA,CAAAA,EAEFG,IAAI,CAAC,EAAEC,KAAK,EAAA,EAAIC,GAAS,MAAA;MACvBC,aAAeD,EAAAA,GAAAA;AACfD,MAAAA;KACF,CAAA,CAAA,EACAG,MAAO,CAAA,CAAC,EAAEH,KAAAA,EAAYA,KAAAA,KAAAA,KAAUL,OAAQS,CAAAA,QAAAA,IAAY,CAAQ,QAAA,CAAA,CAAA,EAC5DC,MAAO,CAAA;AAACC,MAAAA,IAAAA,CAAK,OAAA,CAAA;AAAU,MAAA;AAAO,KAAA,CAAA,EAC9BC,KAAKZ,OAASa,EAAAA,UAAAA,IAAc,KAAKb,OAAQa,CAAAA,UAAAA,IAAcC,QAAAA,CACvD,EAAA,CAACC,IACC,KAAA,IAAIjC,qBACFiC,IAAKX,CAAAA,GAAAA,CAAI,CAAC,EAAEG,aAAAA,EAAeF,OAAa,MAAA;AACtCW,MAAAA,QAAAA,EAAUpB,UAAUW,aAAAA,CAAAA;MACpBU,KAAOV,EAAAA,aAAAA;AACPF,MAAAA;AACF,KAAA,CAAA,CAAA,CAAA,CAAA;AAGR;AACF","file":"similarity.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolInput,\n} from \"./base.js\";\nimport { string, z } from \"zod\";\nimport { RunContext } from \"@/context.js\";\nimport { filter, map, pipe, prop, sortBy, take } from \"remeda\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst documentSchema = z.object({ text: string() }).passthrough();\n\ntype Document = z.infer<typeof documentSchema>;\n\ninterface ProviderInput {\n query: string;\n documents: Document[];\n}\n\ntype Provider<TProviderOptions> = (\n input: ProviderInput,\n options: TProviderOptions | undefined,\n run: RunContext<SimilarityTool<TProviderOptions>>,\n) => Promise<{ score: number }[]>;\n\nexport interface SimilarityToolOptions<TProviderOptions = unknown> extends BaseToolOptions {\n provider: Provider<TProviderOptions>;\n maxResults?: number;\n}\n\nexport interface SimilarityToolRunOptions<TProviderOptions = unknown> extends BaseToolRunOptions {\n provider?: TProviderOptions;\n maxResults?: number;\n minScore?: number;\n}\n\nexport interface SimilarityToolResult {\n document: Document;\n index: number;\n score: number;\n}\n\nexport class SimilarityToolOutput extends JSONToolOutput<SimilarityToolResult[]> {}\n\nexport class SimilarityTool<TProviderOptions> extends Tool<\n SimilarityToolOutput,\n SimilarityToolOptions<TProviderOptions>,\n SimilarityToolRunOptions<TProviderOptions>\n> {\n name = \"Similarity\";\n description = \"Extract relevant information from documents.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SimilarityToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"similarity\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({ query: z.string(), documents: z.array(documentSchema) });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query, documents }: ToolInput<this>,\n options: Partial<SimilarityToolRunOptions<TProviderOptions>>,\n run: RunContext<this>,\n ) {\n return pipe(\n await this.options.provider(\n {\n query,\n documents,\n },\n options?.provider,\n run,\n ),\n map(({ score }, idx) => ({\n documentIndex: idx,\n score,\n })),\n filter(({ score }) => score >= (options.minScore ?? -Infinity)),\n sortBy([prop(\"score\"), \"desc\"]),\n take(options?.maxResults ?? this.options.maxResults ?? Infinity),\n (data) =>\n new SimilarityToolOutput(\n data.map(({ documentIndex, score }) => ({\n document: documents[documentIndex],\n index: documentIndex,\n score,\n })),\n ),\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["openMeteo.ts"],"names":["OpenMeteoToolOutput","JSONToolOutput","OpenMeteoTool","Tool","name","description","inputSchema","z","object","location","union","string","min","country","optional","language","default","strip","latitude","coerce","number","longitude","start_date","date","describe","end_date","temperature_unit","enum","emitter","Emitter","root","child","namespace","creator","register","options","responseFilter","excludedKeys","preprocessInput","rawInput","fixDate","key","value","getProp","setProp","substring","_run","startDate","endDate","input","_options","run","apiKey","prepareParams","extractLocation","response","_geocode","signal","pick","validateAndSetDates","startDateStr","endDateStr","now","Date","start","UTC","getFullYear","getMonth","getDate","end","ToolInputValidationError","toDateString","toISOString","split","createURLParams","pickBy","v","isNullish","current","daily","hourly","timezone","params","fetch","headers","Authorization","ok","ToolError","Error","text","data","json","omit","format","count","results","length"],"mappings":";;;;;;;;;;;;AAcC,SAAA,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAAA,EAAA,IAAA,EAAA;;;;;;AAAA,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;;;;;AA0DM,MAAMA,4BAA4BC,uBAAAA,CAAAA;EAxEzC;;;AAwEgF;AAEzE,MAAMC,sBAAsBC,aAAAA,CAAAA;EA1EnC;;;EA2EEC,IAAO,GAAA,WAAA;EACPC,WAAc,GAAA,CAAA,mEAAA,CAAA;EAEdC,WAAc,GAAA;AACZ,IAAA,OAAOC,MACJC,MAAO,CAAA;AACNC,MAAAA,QAAAA,EAAUF,MAAEG,KAAM,CAAA;AAChBH,QAAAA,KAAAA,CACGC,MAAO,CAAA;AACNJ,UAAAA,IAAAA,EAAMG,KAAEI,CAAAA,MAAAA,EAASC,CAAAA,GAAAA,CAAI,CAAA,CAAA;UACrBC,OAASN,EAAAA,KAAAA,CAAEI,MAAM,EAAA,CAAGG,QAAQ,EAAA;AAC5BC,UAAAA,QAAAA,EAAUR,KAAEI,CAAAA,MAAAA,EAASK,CAAAA,OAAAA,CAAQ,SAAA;AAC/B,SAAA,EACCC,KAAK,EAAA;AACRV,QAAAA,KAAAA,CACGC,MAAO,CAAA;UACNU,QAAUX,EAAAA,KAAAA,CAAEY,OAAOC,MAAM,EAAA;UACzBC,SAAWd,EAAAA,KAAAA,CAAEY,OAAOC,MAAM;AAC5B,SAAA,EACCH,KAAK;AACT,OAAA,CAAA;AACDK,MAAAA,UAAAA,EAAYf,MACTI,MAAM,EAAA,CACNY,IAAI,EAAA,CACJC,SAAS,oEAAA,CAAA;MACZC,QAAUlB,EAAAA,KAAAA,CACPI,QACAY,CAAAA,IAAAA,GACAC,QAAS,CAAA,kEAAA,EACTV,QAAQ,EAAA;AACXY,MAAAA,gBAAAA,EAAkBnB,MAAEoB,IAAK,CAAA;AAAC,QAAA,SAAA;AAAW,QAAA;AAAa,OAAA,CAAA,CAAEX,QAAQ,SAAA;AAC9D,KAAA,EACCC,KAAK,EAAA;AACV;EAEgBW,OAA6DC,GAAAA,mBAAAA,CAAQC,KAAKC,KAAM,CAAA;IAC9FC,SAAW,EAAA;AAAC,MAAA,MAAA;AAAQ,MAAA,SAAA;AAAW,MAAA;;IAC/BC,OAAS,EAAA;GACX,CAAA;EAEA;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEA,WAAmBC,CAAAA,OAAAA,GAAgC,EAAI,EAAA;AACrD,IAAM,KAAA,CAAA;MACJ,GAAGA,OAAAA;AACHC,MAAAA,cAAAA,EAAgBD,SAASC,cAAkB,IAAA;QACzCC,YAAc,EAAA;AACZ,UAAA,UAAA;AACA,UAAA,WAAA;AACA,UAAA,mBAAA;AACA,UAAA,oBAAA;AACA,UAAA,UAAA;AACA,UAAA,uBAAA;AACA,UAAA,WAAA;AACA,UAAA,QAAA;AACA,UAAA;;AAEJ;KACF,CAAA;AACF;AAEUC,EAAAA,eAAAA,CAAgBC,QAAmB,EAAA;AAC3C,IAAA,KAAA,CAAMD,gBAAgBC,QAAAA,CAAAA;AAEtB,IAAMC,MAAAA,OAAAA,2BAAWC,GAAAA,KAAAA;AACf,MAAMC,MAAAA,KAAAA,GAAQC,mBAAQJ,QAAU,EAAA;AAACE,QAAAA;AAAI,OAAA,CAAA;AACrC,MAAA,IAAIC,KAAO,EAAA;AACTE,QAAAA,kBAAAA,CAAQL,QAAU,EAAA;AAACE,UAAAA;WAAMC,KAAMG,CAAAA,SAAAA,CAAU,CAAG,EAAA,EAAA,CAAA,CAAA;AAC9C;KAJc,EAAA,SAAA,CAAA;AAOhBL,IAAAA,OAAAA,CAAQ,YAAA,CAAA;AACRA,IAAAA,OAAAA,CAAQ,UAAA,CAAA;AACV;EAEA,MAAgBM,IAAAA,CACd,EAAErC,QAAAA,EAAUa,UAAYyB,EAAAA,SAAAA,EAAWtB,QAAUuB,EAAAA,OAAAA,EAAS,GAAGC,KAAAA,EACzDC,EAAAA,QAAAA,EACAC,GACA,EAAA;AACA,IAAM,MAAA,EAAEC,MAAM,EAAA,GAAK,IAAKjB,CAAAA,OAAAA;AAExB,IAAA,MAAMkB,gCAAgB,MAAA,CAAA,YAAA;AACpB,MAAA,MAAMC,kCAAkB,MAAA,CAAA,YAAA;AACtB,QAAA,IAAI,UAAU7C,QAAU,EAAA;AACtB,UAAA,MAAM8C,YAAW,MAAM,IAAA,CAAKC,QAAS/C,CAAAA,QAAAA,EAAU0C,IAAIM,MAAM,CAAA;AACzD,UAAA,OAAOC,YAAKH,SAAU,EAAA;AAAC,YAAA,UAAA;AAAY,YAAA;AAAY,WAAA,CAAA;AACjD;AACA,QAAO9C,OAAAA,QAAAA;OALe,EAAA,iBAAA,CAAA;AAQxB,MAASkD,SAAAA,mBAAAA,CACPC,cACAC,UAAmB,EAAA;AAEnB,QAAMC,MAAAA,GAAAA,uBAAUC,IAAAA,EAAAA;AAChB,QAAA,MAAMC,SAAQJ,YACV,GAAA,IAAIG,KAAKH,YAAAA,CAAAA,GACT,IAAIG,IAAKA,CAAAA,IAAAA,CAAKE,IAAIH,GAAII,CAAAA,WAAAA,IAAeJ,GAAIK,CAAAA,QAAAA,IAAYL,GAAIM,CAAAA,OAAAA,EAAO,CAAA,CAAA;AAEpE,QAAA,IAAIP,UAAY,EAAA;AACd,UAAMQ,MAAAA,IAAAA,GAAM,IAAIN,IAAAA,CAAKF,UAAAA,CAAAA;AACrB,UAAA,IAAIQ,OAAML,MAAO,EAAA;AACf,YAAA,MAAM,IAAIM,iCACR,CAAA,CAAA,gBAAA,EAAmBT,UAAAA,CAAAA,6CAAAA,EAA0DD,YAAAA,CAAgB,EAAA,CAAA,CAAA;AAEjG;AACA,UAAO,OAAA;YAAEI,KAAOA,EAAAA,MAAAA;YAAOK,GAAKA,EAAAA;AAAI,WAAA;SAC3B,MAAA;AAEL,UAAO,OAAA;YAAEL,KAAOA,EAAAA,MAAAA;YAAOK,GAAK,EAAA,IAAIN,KAAKC,MAAAA;AAAO,WAAA;AAC9C;AACF;AArBSL,MAAAA,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AAuBT,MAAA,MAAM,EAAEK,KAAOK,EAAAA,GAAAA,EAAQV,GAAAA,mBAAAA,CAAoBZ,WAAWC,OAAAA,CAAAA;AAEtD,MAAMuB,MAAAA,YAAAA,mBAAgBhD,MAAAA,CAAAA,CAAAA,IAAAA,KAAeA,IAAKiD,CAAAA,WAAAA,GAAcC,KAAM,CAAA,GAAA,CAAK,CAAA,CAAA,CAA9C,EAAA,cAAA,CAAA;AAErB,MAAA,OAAOC,2BAAgB,CAAA;QACrB,GAAGC,aAAAA,CAAO1B,OAAO,CAAC2B,CAAAA,KAAM,CAACC,gBAAUD,CAAAA,CAAAA,CAAMA,IAAAA,CAAAA,KAAM,EAAA,CAAA;AAC/C,QAAA,GAAI,MAAMtB,eAAAA,EAAAA;AACVhC,QAAAA,UAAAA,EAAYiD,aAAaP,KAAAA,CAAAA;AACzBvC,QAAAA,QAAAA,EAAU8C,aAAaF,GAAAA,CAAAA;QACvBS,OAAS,EAAA;AAAC,UAAA,gBAAA;AAAkB,UAAA,MAAA;AAAQ,UAAA,sBAAA;AAAwB,UAAA;;QAC5DC,KAAO,EAAA;AAAC,UAAA,oBAAA;AAAsB,UAAA,oBAAA;AAAsB,UAAA;;QACpDC,MAAQ,EAAA;AAAC,UAAA,gBAAA;AAAkB,UAAA,sBAAA;AAAwB,UAAA;;QACnDC,QAAU,EAAA;OACZ,CAAA;KA7CoB,EAAA,eAAA,CAAA;AAgDtB,IAAMC,MAAAA,MAAAA,GAAS,MAAM7B,aAAAA,EAAAA;AACrB,IAAA,MAAME,QAAW,GAAA,MAAM4B,KAAM,CAAA,CAAA,uCAAA,EAA0CD,MAAAA,CAAU,CAAA,EAAA;MAC/EE,OAAS,EAAA;AACP,QAAA,GAAIhC,MAAU,IAAA;AACZiC,UAAAA,aAAAA,EAAe,UAAUjC,MAAAA,CAAAA;AAC3B;AACF,OAAA;AACAK,MAAAA,MAAAA,EAAQN,GAAIM,CAAAA;KACd,CAAA;AAEA,IAAI,IAAA,CAACF,SAAS+B,EAAI,EAAA;AAChB,MAAM,MAAA,IAAIC,mBAAU,sCAAwC,EAAA;AAC1D,QAAA,IAAIC,KAAM,CAAA,MAAMjC,QAASkC,CAAAA,IAAAA,EAAI;AAC9B,OAAA,CAAA;AACH;AAEA,IAAIC,IAAAA,IAAAA,GAA8B,MAAMnC,QAAAA,CAASoC,IAAI,EAAA;AAErD,IAAI,IAAA,IAAA,CAAKxD,OAASC,EAAAA,cAAAA,EAAgBC,YAAc,EAAA;AAC9CqD,MAAAA,IAAAA,GAAOE,WAAKF,CAAAA,IAAAA,EAAM,IAAKvD,CAAAA,OAAAA,CAAQC,eAAeC,YAAY,CAAA;AAC5D;AAEA,IAAO,OAAA,IAAIrC,oBAAoB0F,IAAAA,CAAAA;AACjC;EAEA,MACgBlC,QAAAA,CAAS/C,UAA0BgD,MAAqB,EAAA;AACtE,IAAM,MAAA,EAAEL,MAAM,EAAA,GAAK,IAAKjB,CAAAA,OAAAA;AAExB,IAAA,MAAM+C,SAASR,2BAAgB,CAAA;AAC7BtE,MAAAA,IAAAA,EAAMK,QAASL,CAAAA,IAAAA;AACfW,MAAAA,QAAAA,EAAUN,QAASM,CAAAA,QAAAA;AACnBF,MAAAA,OAAAA,EAASJ,QAASI,CAAAA,OAAAA;MAClBgF,MAAQ,EAAA,MAAA;MACRC,KAAO,EAAA;KACT,CAAA;AACA,IAAA,MAAMvC,QAAW,GAAA,MAAM4B,KAAM,CAAA,CAAA,+CAAA,EAAkDD,MAAAA,CAAU,CAAA,EAAA;MACvFE,OAAS,EAAA;AACP,QAAA,GAAIhC,MAAU,IAAA;AACZiC,UAAAA,aAAAA,EAAe,UAAUjC,MAAAA,CAAAA;AAC3B;AACF,OAAA;AACAK,MAAAA;KACF,CAAA;AACA,IAAI,IAAA,CAACF,SAAS+B,EAAI,EAAA;AAChB,MAAA,MAAM,IAAIC,kBAAAA,CAAU,CAAwC9E,qCAAAA,EAAAA,QAAAA,CAASL,IAAI,CAAM,EAAA,CAAA,EAAA;AAC7E,QAAA,IAAIoF,KAAM,CAAA,MAAMjC,QAASkC,CAAAA,IAAAA,EAAI;AAC9B,OAAA,CAAA;AACH;AAEA,IAAA,MAAM,EAAEM,OAAAA,EAAY,GAAA,MAAMxC,SAASoC,IAAI,EAAA;AACvC,IAAA,IAAI,CAACI,OAAAA,IAAWA,OAAQC,CAAAA,MAAAA,KAAW,CAAG,EAAA;AACpC,MAAA,MAAM,IAAIT,kBAAAA,CAAU,CAAa9E,UAAAA,EAAAA,QAAAA,CAASL,IAAI,CAAkB,gBAAA,CAAA,CAAA;AAClE;AACA,IAAA,OAAO2F,QAAQ,CAAA,CAAA;AACjB;AACF","file":"openMeteo.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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 { isNullish, omit, pick, pickBy } from \"remeda\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { getProp, setProp } from \"@/internals/helpers/object.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ResponseFilter {\n excludedKeys: (keyof OpenMeteoToolResponse)[];\n}\n\ninterface ToolOptions extends BaseToolOptions {\n apiKey?: string;\n responseFilter?: ResponseFilter;\n}\n\ntype ToolRunOptions = BaseToolRunOptions;\n\ninterface Location {\n latitude: number;\n longitude: number;\n}\n\ninterface LocationSearch {\n name: string;\n country?: string;\n language?: string;\n}\n\nexport interface OpenMeteoToolResponse {\n latitude?: number;\n longitude?: number;\n generationtime_ms?: number;\n utc_offset_seconds?: number;\n timezone?: string;\n timezone_abbreviation?: string;\n elevation?: number;\n current_units?: Record<string, string>;\n current?: Record<string, string>;\n hourly_units?: Record<string, string>;\n hourly?: Record<string, any[]>;\n daily_units?: Record<string, string>;\n daily?: Record<string, any[]>;\n}\n\nexport class OpenMeteoToolOutput extends JSONToolOutput<OpenMeteoToolResponse> {}\n\nexport class OpenMeteoTool extends Tool<OpenMeteoToolOutput, ToolOptions, ToolRunOptions> {\n name = \"OpenMeteo\";\n description = `Retrieve current, past, or future weather forecasts for a location.`;\n\n inputSchema() {\n return z\n .object({\n location: z.union([\n z\n .object({\n name: z.string().min(1),\n country: z.string().optional(),\n language: z.string().default(\"English\"),\n })\n .strip(),\n z\n .object({\n latitude: z.coerce.number(),\n longitude: z.coerce.number(),\n })\n .strip(),\n ]),\n start_date: z\n .string()\n .date()\n .describe(\"Start date for the weather forecast in the format YYYY-MM-DD (UTC)\"),\n end_date: z\n .string()\n .date()\n .describe(\"End date for the weather forecast in the format YYYY-MM-DD (UTC)\")\n .optional(),\n temperature_unit: z.enum([\"celsius\", \"fahrenheit\"]).default(\"celsius\"),\n })\n .strip();\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, OpenMeteoToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"weather\", \"openMeteo\"],\n creator: this,\n });\n\n static {\n this.register();\n }\n\n public constructor(options: Partial<ToolOptions> = {}) {\n super({\n ...options,\n responseFilter: options?.responseFilter ?? {\n excludedKeys: [\n \"latitude\",\n \"longitude\",\n \"generationtime_ms\",\n \"utc_offset_seconds\",\n \"timezone\",\n \"timezone_abbreviation\",\n \"elevation\",\n \"hourly\",\n \"hourly_units\",\n ],\n },\n });\n }\n\n protected preprocessInput(rawInput: unknown) {\n super.preprocessInput(rawInput);\n\n const fixDate = (key: keyof ToolInput<this>) => {\n const value = getProp(rawInput, [key]);\n if (value) {\n setProp(rawInput, [key], value.substring(0, 10));\n }\n };\n\n fixDate(\"start_date\");\n fixDate(\"end_date\");\n }\n\n protected async _run(\n { location, start_date: startDate, end_date: endDate, ...input }: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const { apiKey } = this.options;\n\n const prepareParams = async () => {\n const extractLocation = async (): Promise<Location> => {\n if (\"name\" in location) {\n const response = await this._geocode(location, run.signal);\n return pick(response, [\"latitude\", \"longitude\"]);\n }\n return location;\n };\n\n function validateAndSetDates(\n startDateStr: string,\n endDateStr?: string,\n ): { start: Date; end: Date } {\n const now = new Date();\n const start = startDateStr\n ? new Date(startDateStr)\n : new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));\n\n if (endDateStr) {\n const end = new Date(endDateStr);\n if (end < start) {\n throw new ToolInputValidationError(\n `The 'end_date' (${endDateStr}) has to occur on or after the 'start_date' (${startDateStr}).`,\n );\n }\n return { start: start, end: end };\n } else {\n // If endDate is undefined, set it to the start date\n return { start: start, end: new Date(start) };\n }\n }\n\n const { start, end } = validateAndSetDates(startDate, endDate);\n\n const toDateString = (date: Date) => date.toISOString().split(\"T\")[0];\n\n return createURLParams({\n ...pickBy(input, (v) => !isNullish(v) && v !== \"\"),\n ...(await extractLocation()),\n start_date: toDateString(start),\n end_date: toDateString(end),\n current: [\"temperature_2m\", \"rain\", \"relative_humidity_2m\", \"wind_speed_10m\"],\n daily: [\"temperature_2m_max\", \"temperature_2m_min\", \"rain_sum\"],\n hourly: [\"temperature_2m\", \"relative_humidity_2m\", \"rain\"],\n timezone: \"UTC\",\n });\n };\n\n const params = await prepareParams();\n const response = await fetch(`https://api.open-meteo.com/v1/forecast?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new ToolError(\"Request to OpenMeteo API has failed!\", [\n new Error(await response.text()),\n ]);\n }\n\n let data: OpenMeteoToolResponse = await response.json();\n\n if (this.options?.responseFilter?.excludedKeys) {\n data = omit(data, this.options.responseFilter.excludedKeys);\n }\n\n return new OpenMeteoToolOutput(data);\n }\n\n @Cache()\n protected async _geocode(location: LocationSearch, signal: AbortSignal) {\n const { apiKey } = this.options;\n\n const params = createURLParams({\n name: location.name,\n language: location.language,\n country: location.country,\n format: \"json\",\n count: 1,\n });\n const response = await fetch(`https://geocoding-api.open-meteo.com/v1/search?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal,\n });\n if (!response.ok) {\n throw new ToolError(`Failed to GeoCode provided location (${location.name}).`, [\n new Error(await response.text()),\n ]);\n }\n\n const { results } = await response.json();\n if (!results || results.length === 0) {\n throw new ToolError(`Location '${location.name}' was not found.`);\n }\n return results[0];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["openMeteo.ts"],"names":["OpenMeteoToolOutput","JSONToolOutput","OpenMeteoTool","Tool","name","description","inputSchema","z","object","location","union","string","min","country","optional","language","default","strip","latitude","coerce","number","longitude","start_date","date","describe","end_date","temperature_unit","enum","emitter","Emitter","root","child","namespace","creator","register","options","responseFilter","excludedKeys","preprocessInput","rawInput","fixDate","key","value","getProp","setProp","substring","_run","startDate","endDate","input","_options","run","apiKey","prepareParams","extractLocation","response","_geocode","signal","pick","validateAndSetDates","startDateStr","endDateStr","now","Date","start","UTC","getFullYear","getMonth","getDate","end","ToolInputValidationError","toDateString","toISOString","split","createURLParams","pickBy","v","isNullish","current","daily","hourly","timezone","params","fetch","headers","Authorization","ok","ToolError","Error","text","data","json","omit","format","count","results","length"],"mappings":";;;;;;;;;;;;AAcC,SAAA,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAAA,EAAA,IAAA,EAAA;;;;;;AAAA,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;;;;;AA0DM,MAAMA,4BAA4BC,uBAAAA,CAAAA;EAxEzC;;;AAwEgF;AAEzE,MAAMC,sBAAsBC,aAAAA,CAAAA;EA1EnC;;;EA2EEC,IAAO,GAAA,WAAA;EACPC,WAAc,GAAA,CAAA,mEAAA,CAAA;EAEdC,WAAc,GAAA;AACZ,IAAA,OAAOC,MACJC,MAAO,CAAA;AACNC,MAAAA,QAAAA,EAAUF,MAAEG,KAAM,CAAA;AAChBH,QAAAA,KAAAA,CACGC,MAAO,CAAA;AACNJ,UAAAA,IAAAA,EAAMG,KAAEI,CAAAA,MAAAA,EAASC,CAAAA,GAAAA,CAAI,CAAA,CAAA;UACrBC,OAASN,EAAAA,KAAAA,CAAEI,MAAM,EAAA,CAAGG,QAAQ,EAAA;AAC5BC,UAAAA,QAAAA,EAAUR,KAAEI,CAAAA,MAAAA,EAASK,CAAAA,OAAAA,CAAQ,SAAA;AAC/B,SAAA,EACCC,KAAK,EAAA;AACRV,QAAAA,KAAAA,CACGC,MAAO,CAAA;UACNU,QAAUX,EAAAA,KAAAA,CAAEY,OAAOC,MAAM,EAAA;UACzBC,SAAWd,EAAAA,KAAAA,CAAEY,OAAOC,MAAM;AAC5B,SAAA,EACCH,KAAK;AACT,OAAA,CAAA;AACDK,MAAAA,UAAAA,EAAYf,MACTI,MAAM,EAAA,CACNY,IAAI,EAAA,CACJC,SAAS,oEAAA,CAAA;MACZC,QAAUlB,EAAAA,KAAAA,CACPI,QACAY,CAAAA,IAAAA,GACAC,QAAS,CAAA,kEAAA,EACTV,QAAQ,EAAA;AACXY,MAAAA,gBAAAA,EAAkBnB,MAAEoB,IAAK,CAAA;AAAC,QAAA,SAAA;AAAW,QAAA;AAAa,OAAA,CAAA,CAAEX,QAAQ,SAAA;AAC9D,KAAA,EACCC,KAAK,EAAA;AACV;EAEgBW,OAA6DC,GAAAA,mBAAAA,CAAQC,KAAKC,KAAM,CAAA;IAC9FC,SAAW,EAAA;AAAC,MAAA,MAAA;AAAQ,MAAA,SAAA;AAAW,MAAA;;IAC/BC,OAAS,EAAA;GACX,CAAA;EAEA;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEA,WAAmBC,CAAAA,OAAAA,GAAgC,EAAI,EAAA;AACrD,IAAM,KAAA,CAAA;MACJ,GAAGA,OAAAA;AACHC,MAAAA,cAAAA,EAAgBD,SAASC,cAAkB,IAAA;QACzCC,YAAc,EAAA;AACZ,UAAA,UAAA;AACA,UAAA,WAAA;AACA,UAAA,mBAAA;AACA,UAAA,oBAAA;AACA,UAAA,UAAA;AACA,UAAA,uBAAA;AACA,UAAA,WAAA;AACA,UAAA,QAAA;AACA,UAAA;;AAEJ;KACF,CAAA;AACF;AAEUC,EAAAA,eAAAA,CAAgBC,QAAmB,EAAA;AAC3C,IAAA,KAAA,CAAMD,gBAAgBC,QAAAA,CAAAA;AAEtB,IAAMC,MAAAA,OAAAA,2BAAWC,GAAAA,KAAAA;AACf,MAAMC,MAAAA,KAAAA,GAAQC,mBAAQJ,QAAU,EAAA;AAACE,QAAAA;AAAI,OAAA,CAAA;AACrC,MAAA,IAAIC,KAAO,EAAA;AACTE,QAAAA,kBAAAA,CAAQL,QAAU,EAAA;AAACE,UAAAA;WAAMC,KAAMG,CAAAA,SAAAA,CAAU,CAAG,EAAA,EAAA,CAAA,CAAA;AAC9C;KAJc,EAAA,SAAA,CAAA;AAOhBL,IAAAA,OAAAA,CAAQ,YAAA,CAAA;AACRA,IAAAA,OAAAA,CAAQ,UAAA,CAAA;AACV;EAEA,MAAgBM,IAAAA,CACd,EAAErC,QAAAA,EAAUa,UAAYyB,EAAAA,SAAAA,EAAWtB,QAAUuB,EAAAA,OAAAA,EAAS,GAAGC,KAAAA,EACzDC,EAAAA,QAAAA,EACAC,GACA,EAAA;AACA,IAAM,MAAA,EAAEC,MAAM,EAAA,GAAK,IAAKjB,CAAAA,OAAAA;AAExB,IAAA,MAAMkB,gCAAgB,MAAA,CAAA,YAAA;AACpB,MAAA,MAAMC,kCAAkB,MAAA,CAAA,YAAA;AACtB,QAAA,IAAI,UAAU7C,QAAU,EAAA;AACtB,UAAA,MAAM8C,YAAW,MAAM,IAAA,CAAKC,QAAS/C,CAAAA,QAAAA,EAAU0C,IAAIM,MAAM,CAAA;AACzD,UAAA,OAAOC,YAAKH,SAAU,EAAA;AAAC,YAAA,UAAA;AAAY,YAAA;AAAY,WAAA,CAAA;AACjD;AACA,QAAO9C,OAAAA,QAAAA;OALe,EAAA,iBAAA,CAAA;AAQxB,MAASkD,SAAAA,mBAAAA,CACPC,cACAC,UAAmB,EAAA;AAEnB,QAAMC,MAAAA,GAAAA,uBAAUC,IAAAA,EAAAA;AAChB,QAAA,MAAMC,SAAQJ,YACV,GAAA,IAAIG,KAAKH,YAAAA,CAAAA,GACT,IAAIG,IAAKA,CAAAA,IAAAA,CAAKE,IAAIH,GAAII,CAAAA,WAAAA,IAAeJ,GAAIK,CAAAA,QAAAA,IAAYL,GAAIM,CAAAA,OAAAA,EAAO,CAAA,CAAA;AAEpE,QAAA,IAAIP,UAAY,EAAA;AACd,UAAMQ,MAAAA,IAAAA,GAAM,IAAIN,IAAAA,CAAKF,UAAAA,CAAAA;AACrB,UAAA,IAAIQ,OAAML,MAAO,EAAA;AACf,YAAA,MAAM,IAAIM,iCACR,CAAA,CAAA,gBAAA,EAAmBT,UAAAA,CAAAA,6CAAAA,EAA0DD,YAAAA,CAAgB,EAAA,CAAA,CAAA;AAEjG;AACA,UAAO,OAAA;YAAEI,KAAOA,EAAAA,MAAAA;YAAOK,GAAKA,EAAAA;AAAI,WAAA;SAC3B,MAAA;AAEL,UAAO,OAAA;YAAEL,KAAOA,EAAAA,MAAAA;YAAOK,GAAK,EAAA,IAAIN,KAAKC,MAAAA;AAAO,WAAA;AAC9C;AACF;AArBSL,MAAAA,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AAuBT,MAAA,MAAM,EAAEK,KAAOK,EAAAA,GAAAA,EAAQV,GAAAA,mBAAAA,CAAoBZ,WAAWC,OAAAA,CAAAA;AAEtD,MAAMuB,MAAAA,YAAAA,mBAAgBhD,MAAAA,CAAAA,CAAAA,IAAAA,KAAeA,IAAKiD,CAAAA,WAAAA,GAAcC,KAAM,CAAA,GAAA,CAAK,CAAA,CAAA,CAA9C,EAAA,cAAA,CAAA;AAErB,MAAA,OAAOC,2BAAgB,CAAA;QACrB,GAAGC,aAAAA,CAAO1B,OAAO,CAAC2B,CAAAA,KAAM,CAACC,gBAAUD,CAAAA,CAAAA,CAAMA,IAAAA,CAAAA,KAAM,EAAA,CAAA;AAC/C,QAAA,GAAI,MAAMtB,eAAAA,EAAAA;AACVhC,QAAAA,UAAAA,EAAYiD,aAAaP,KAAAA,CAAAA;AACzBvC,QAAAA,QAAAA,EAAU8C,aAAaF,GAAAA,CAAAA;QACvBS,OAAS,EAAA;AAAC,UAAA,gBAAA;AAAkB,UAAA,MAAA;AAAQ,UAAA,sBAAA;AAAwB,UAAA;;QAC5DC,KAAO,EAAA;AAAC,UAAA,oBAAA;AAAsB,UAAA,oBAAA;AAAsB,UAAA;;QACpDC,MAAQ,EAAA;AAAC,UAAA,gBAAA;AAAkB,UAAA,sBAAA;AAAwB,UAAA;;QACnDC,QAAU,EAAA;OACZ,CAAA;KA7CoB,EAAA,eAAA,CAAA;AAgDtB,IAAMC,MAAAA,MAAAA,GAAS,MAAM7B,aAAAA,EAAAA;AACrB,IAAA,MAAME,QAAW,GAAA,MAAM4B,KAAM,CAAA,CAAA,uCAAA,EAA0CD,MAAAA,CAAU,CAAA,EAAA;MAC/EE,OAAS,EAAA;AACP,QAAA,GAAIhC,MAAU,IAAA;AACZiC,UAAAA,aAAAA,EAAe,UAAUjC,MAAAA,CAAAA;AAC3B;AACF,OAAA;AACAK,MAAAA,MAAAA,EAAQN,GAAIM,CAAAA;KACd,CAAA;AAEA,IAAI,IAAA,CAACF,SAAS+B,EAAI,EAAA;AAChB,MAAM,MAAA,IAAIC,mBAAU,sCAAwC,EAAA;AAC1D,QAAA,IAAIC,KAAM,CAAA,MAAMjC,QAASkC,CAAAA,IAAAA,EAAI;AAC9B,OAAA,CAAA;AACH;AAEA,IAAIC,IAAAA,IAAAA,GAA8B,MAAMnC,QAAAA,CAASoC,IAAI,EAAA;AAErD,IAAI,IAAA,IAAA,CAAKxD,OAASC,EAAAA,cAAAA,EAAgBC,YAAc,EAAA;AAC9CqD,MAAAA,IAAAA,GAAOE,WAAKF,CAAAA,IAAAA,EAAM,IAAKvD,CAAAA,OAAAA,CAAQC,eAAeC,YAAY,CAAA;AAC5D;AAEA,IAAO,OAAA,IAAIrC,oBAAoB0F,IAAAA,CAAAA;AACjC;EAEA,MACgBlC,QAAAA,CAAS/C,UAA0BgD,MAAqB,EAAA;AACtE,IAAM,MAAA,EAAEL,MAAM,EAAA,GAAK,IAAKjB,CAAAA,OAAAA;AAExB,IAAA,MAAM+C,SAASR,2BAAgB,CAAA;AAC7BtE,MAAAA,IAAAA,EAAMK,QAASL,CAAAA,IAAAA;AACfW,MAAAA,QAAAA,EAAUN,QAASM,CAAAA,QAAAA;AACnBF,MAAAA,OAAAA,EAASJ,QAASI,CAAAA,OAAAA;MAClBgF,MAAQ,EAAA,MAAA;MACRC,KAAO,EAAA;KACT,CAAA;AACA,IAAA,MAAMvC,QAAW,GAAA,MAAM4B,KAAM,CAAA,CAAA,+CAAA,EAAkDD,MAAAA,CAAU,CAAA,EAAA;MACvFE,OAAS,EAAA;AACP,QAAA,GAAIhC,MAAU,IAAA;AACZiC,UAAAA,aAAAA,EAAe,UAAUjC,MAAAA,CAAAA;AAC3B;AACF,OAAA;AACAK,MAAAA;KACF,CAAA;AACA,IAAI,IAAA,CAACF,SAAS+B,EAAI,EAAA;AAChB,MAAA,MAAM,IAAIC,kBAAAA,CAAU,CAAwC9E,qCAAAA,EAAAA,QAAAA,CAASL,IAAI,CAAM,EAAA,CAAA,EAAA;AAC7E,QAAA,IAAIoF,KAAM,CAAA,MAAMjC,QAASkC,CAAAA,IAAAA,EAAI;AAC9B,OAAA,CAAA;AACH;AAEA,IAAA,MAAM,EAAEM,OAAAA,EAAY,GAAA,MAAMxC,SAASoC,IAAI,EAAA;AACvC,IAAA,IAAI,CAACI,OAAAA,IAAWA,OAAQC,CAAAA,MAAAA,KAAW,CAAG,EAAA;AACpC,MAAA,MAAM,IAAIT,kBAAAA,CAAU,CAAa9E,UAAAA,EAAAA,QAAAA,CAASL,IAAI,CAAkB,gBAAA,CAAA,CAAA;AAClE;AACA,IAAA,OAAO2F,QAAQ,CAAA,CAAA;AACjB;AACF","file":"openMeteo.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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 { isNullish, omit, pick, pickBy } from \"remeda\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { getProp, setProp } from \"@/internals/helpers/object.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ResponseFilter {\n excludedKeys: (keyof OpenMeteoToolResponse)[];\n}\n\ninterface ToolOptions extends BaseToolOptions {\n apiKey?: string;\n responseFilter?: ResponseFilter;\n}\n\ntype ToolRunOptions = BaseToolRunOptions;\n\ninterface Location {\n latitude: number;\n longitude: number;\n}\n\ninterface LocationSearch {\n name: string;\n country?: string;\n language?: string;\n}\n\nexport interface OpenMeteoToolResponse {\n latitude?: number;\n longitude?: number;\n generationtime_ms?: number;\n utc_offset_seconds?: number;\n timezone?: string;\n timezone_abbreviation?: string;\n elevation?: number;\n current_units?: Record<string, string>;\n current?: Record<string, string>;\n hourly_units?: Record<string, string>;\n hourly?: Record<string, any[]>;\n daily_units?: Record<string, string>;\n daily?: Record<string, any[]>;\n}\n\nexport class OpenMeteoToolOutput extends JSONToolOutput<OpenMeteoToolResponse> {}\n\nexport class OpenMeteoTool extends Tool<OpenMeteoToolOutput, ToolOptions, ToolRunOptions> {\n name = \"OpenMeteo\";\n description = `Retrieve current, past, or future weather forecasts for a location.`;\n\n inputSchema() {\n return z\n .object({\n location: z.union([\n z\n .object({\n name: z.string().min(1),\n country: z.string().optional(),\n language: z.string().default(\"English\"),\n })\n .strip(),\n z\n .object({\n latitude: z.coerce.number(),\n longitude: z.coerce.number(),\n })\n .strip(),\n ]),\n start_date: z\n .string()\n .date()\n .describe(\"Start date for the weather forecast in the format YYYY-MM-DD (UTC)\"),\n end_date: z\n .string()\n .date()\n .describe(\"End date for the weather forecast in the format YYYY-MM-DD (UTC)\")\n .optional(),\n temperature_unit: z.enum([\"celsius\", \"fahrenheit\"]).default(\"celsius\"),\n })\n .strip();\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, OpenMeteoToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"weather\", \"openMeteo\"],\n creator: this,\n });\n\n static {\n this.register();\n }\n\n public constructor(options: Partial<ToolOptions> = {}) {\n super({\n ...options,\n responseFilter: options?.responseFilter ?? {\n excludedKeys: [\n \"latitude\",\n \"longitude\",\n \"generationtime_ms\",\n \"utc_offset_seconds\",\n \"timezone\",\n \"timezone_abbreviation\",\n \"elevation\",\n \"hourly\",\n \"hourly_units\",\n ],\n },\n });\n }\n\n protected preprocessInput(rawInput: unknown) {\n super.preprocessInput(rawInput);\n\n const fixDate = (key: keyof ToolInput<this>) => {\n const value = getProp(rawInput, [key]);\n if (value) {\n setProp(rawInput, [key], value.substring(0, 10));\n }\n };\n\n fixDate(\"start_date\");\n fixDate(\"end_date\");\n }\n\n protected async _run(\n { location, start_date: startDate, end_date: endDate, ...input }: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const { apiKey } = this.options;\n\n const prepareParams = async () => {\n const extractLocation = async (): Promise<Location> => {\n if (\"name\" in location) {\n const response = await this._geocode(location, run.signal);\n return pick(response, [\"latitude\", \"longitude\"]);\n }\n return location;\n };\n\n function validateAndSetDates(\n startDateStr: string,\n endDateStr?: string,\n ): { start: Date; end: Date } {\n const now = new Date();\n const start = startDateStr\n ? new Date(startDateStr)\n : new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));\n\n if (endDateStr) {\n const end = new Date(endDateStr);\n if (end < start) {\n throw new ToolInputValidationError(\n `The 'end_date' (${endDateStr}) has to occur on or after the 'start_date' (${startDateStr}).`,\n );\n }\n return { start: start, end: end };\n } else {\n // If endDate is undefined, set it to the start date\n return { start: start, end: new Date(start) };\n }\n }\n\n const { start, end } = validateAndSetDates(startDate, endDate);\n\n const toDateString = (date: Date) => date.toISOString().split(\"T\")[0];\n\n return createURLParams({\n ...pickBy(input, (v) => !isNullish(v) && v !== \"\"),\n ...(await extractLocation()),\n start_date: toDateString(start),\n end_date: toDateString(end),\n current: [\"temperature_2m\", \"rain\", \"relative_humidity_2m\", \"wind_speed_10m\"],\n daily: [\"temperature_2m_max\", \"temperature_2m_min\", \"rain_sum\"],\n hourly: [\"temperature_2m\", \"relative_humidity_2m\", \"rain\"],\n timezone: \"UTC\",\n });\n };\n\n const params = await prepareParams();\n const response = await fetch(`https://api.open-meteo.com/v1/forecast?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new ToolError(\"Request to OpenMeteo API has failed!\", [\n new Error(await response.text()),\n ]);\n }\n\n let data: OpenMeteoToolResponse = await response.json();\n\n if (this.options?.responseFilter?.excludedKeys) {\n data = omit(data, this.options.responseFilter.excludedKeys);\n }\n\n return new OpenMeteoToolOutput(data);\n }\n\n @Cache()\n protected async _geocode(location: LocationSearch, signal: AbortSignal) {\n const { apiKey } = this.options;\n\n const params = createURLParams({\n name: location.name,\n language: location.language,\n country: location.country,\n format: \"json\",\n count: 1,\n });\n const response = await fetch(`https://geocoding-api.open-meteo.com/v1/search?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal,\n });\n if (!response.ok) {\n throw new ToolError(`Failed to GeoCode provided location (${location.name}).`, [\n new Error(await response.text()),\n ]);\n }\n\n const { results } = await response.json();\n if (!results || results.length === 0) {\n throw new ToolError(`Location '${location.name}' was not found.`);\n }\n return results[0];\n }\n}\n"]}
|
|
@@ -10,11 +10,11 @@ import 'promise-based-task';
|
|
|
10
10
|
import '../../cache/base.cjs';
|
|
11
11
|
import '../../internals/helpers/schema.cjs';
|
|
12
12
|
import 'zod-to-json-schema';
|
|
13
|
-
import '../../emitter-
|
|
13
|
+
import '../../emitter-D5Mu0EEH.cjs';
|
|
14
14
|
import '../../internals/helpers/promise.cjs';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Copyright 2025
|
|
17
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
18
18
|
*
|
|
19
19
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
20
20
|
* you may not use this file except in compliance with the License.
|
|
@@ -10,11 +10,11 @@ import 'promise-based-task';
|
|
|
10
10
|
import '../../cache/base.js';
|
|
11
11
|
import '../../internals/helpers/schema.js';
|
|
12
12
|
import 'zod-to-json-schema';
|
|
13
|
-
import '../../emitter-
|
|
13
|
+
import '../../emitter-C3dO-s2P.js';
|
|
14
14
|
import '../../internals/helpers/promise.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Copyright 2025
|
|
17
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
18
18
|
*
|
|
19
19
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
20
20
|
* you may not use this file except in compliance with the License.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["openMeteo.ts"],"names":["OpenMeteoToolOutput","JSONToolOutput","OpenMeteoTool","Tool","name","description","inputSchema","z","object","location","union","string","min","country","optional","language","default","strip","latitude","coerce","number","longitude","start_date","date","describe","end_date","temperature_unit","enum","emitter","Emitter","root","child","namespace","creator","register","options","responseFilter","excludedKeys","preprocessInput","rawInput","fixDate","key","value","getProp","setProp","substring","_run","startDate","endDate","input","_options","run","apiKey","prepareParams","extractLocation","response","_geocode","signal","pick","validateAndSetDates","startDateStr","endDateStr","now","Date","start","UTC","getFullYear","getMonth","getDate","end","ToolInputValidationError","toDateString","toISOString","split","createURLParams","pickBy","v","isNullish","current","daily","hourly","timezone","params","fetch","headers","Authorization","ok","ToolError","Error","text","data","json","omit","format","count","results","length"],"mappings":"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","file":"openMeteo.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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 { isNullish, omit, pick, pickBy } from \"remeda\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { getProp, setProp } from \"@/internals/helpers/object.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ResponseFilter {\n excludedKeys: (keyof OpenMeteoToolResponse)[];\n}\n\ninterface ToolOptions extends BaseToolOptions {\n apiKey?: string;\n responseFilter?: ResponseFilter;\n}\n\ntype ToolRunOptions = BaseToolRunOptions;\n\ninterface Location {\n latitude: number;\n longitude: number;\n}\n\ninterface LocationSearch {\n name: string;\n country?: string;\n language?: string;\n}\n\nexport interface OpenMeteoToolResponse {\n latitude?: number;\n longitude?: number;\n generationtime_ms?: number;\n utc_offset_seconds?: number;\n timezone?: string;\n timezone_abbreviation?: string;\n elevation?: number;\n current_units?: Record<string, string>;\n current?: Record<string, string>;\n hourly_units?: Record<string, string>;\n hourly?: Record<string, any[]>;\n daily_units?: Record<string, string>;\n daily?: Record<string, any[]>;\n}\n\nexport class OpenMeteoToolOutput extends JSONToolOutput<OpenMeteoToolResponse> {}\n\nexport class OpenMeteoTool extends Tool<OpenMeteoToolOutput, ToolOptions, ToolRunOptions> {\n name = \"OpenMeteo\";\n description = `Retrieve current, past, or future weather forecasts for a location.`;\n\n inputSchema() {\n return z\n .object({\n location: z.union([\n z\n .object({\n name: z.string().min(1),\n country: z.string().optional(),\n language: z.string().default(\"English\"),\n })\n .strip(),\n z\n .object({\n latitude: z.coerce.number(),\n longitude: z.coerce.number(),\n })\n .strip(),\n ]),\n start_date: z\n .string()\n .date()\n .describe(\"Start date for the weather forecast in the format YYYY-MM-DD (UTC)\"),\n end_date: z\n .string()\n .date()\n .describe(\"End date for the weather forecast in the format YYYY-MM-DD (UTC)\")\n .optional(),\n temperature_unit: z.enum([\"celsius\", \"fahrenheit\"]).default(\"celsius\"),\n })\n .strip();\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, OpenMeteoToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"weather\", \"openMeteo\"],\n creator: this,\n });\n\n static {\n this.register();\n }\n\n public constructor(options: Partial<ToolOptions> = {}) {\n super({\n ...options,\n responseFilter: options?.responseFilter ?? {\n excludedKeys: [\n \"latitude\",\n \"longitude\",\n \"generationtime_ms\",\n \"utc_offset_seconds\",\n \"timezone\",\n \"timezone_abbreviation\",\n \"elevation\",\n \"hourly\",\n \"hourly_units\",\n ],\n },\n });\n }\n\n protected preprocessInput(rawInput: unknown) {\n super.preprocessInput(rawInput);\n\n const fixDate = (key: keyof ToolInput<this>) => {\n const value = getProp(rawInput, [key]);\n if (value) {\n setProp(rawInput, [key], value.substring(0, 10));\n }\n };\n\n fixDate(\"start_date\");\n fixDate(\"end_date\");\n }\n\n protected async _run(\n { location, start_date: startDate, end_date: endDate, ...input }: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const { apiKey } = this.options;\n\n const prepareParams = async () => {\n const extractLocation = async (): Promise<Location> => {\n if (\"name\" in location) {\n const response = await this._geocode(location, run.signal);\n return pick(response, [\"latitude\", \"longitude\"]);\n }\n return location;\n };\n\n function validateAndSetDates(\n startDateStr: string,\n endDateStr?: string,\n ): { start: Date; end: Date } {\n const now = new Date();\n const start = startDateStr\n ? new Date(startDateStr)\n : new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));\n\n if (endDateStr) {\n const end = new Date(endDateStr);\n if (end < start) {\n throw new ToolInputValidationError(\n `The 'end_date' (${endDateStr}) has to occur on or after the 'start_date' (${startDateStr}).`,\n );\n }\n return { start: start, end: end };\n } else {\n // If endDate is undefined, set it to the start date\n return { start: start, end: new Date(start) };\n }\n }\n\n const { start, end } = validateAndSetDates(startDate, endDate);\n\n const toDateString = (date: Date) => date.toISOString().split(\"T\")[0];\n\n return createURLParams({\n ...pickBy(input, (v) => !isNullish(v) && v !== \"\"),\n ...(await extractLocation()),\n start_date: toDateString(start),\n end_date: toDateString(end),\n current: [\"temperature_2m\", \"rain\", \"relative_humidity_2m\", \"wind_speed_10m\"],\n daily: [\"temperature_2m_max\", \"temperature_2m_min\", \"rain_sum\"],\n hourly: [\"temperature_2m\", \"relative_humidity_2m\", \"rain\"],\n timezone: \"UTC\",\n });\n };\n\n const params = await prepareParams();\n const response = await fetch(`https://api.open-meteo.com/v1/forecast?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new ToolError(\"Request to OpenMeteo API has failed!\", [\n new Error(await response.text()),\n ]);\n }\n\n let data: OpenMeteoToolResponse = await response.json();\n\n if (this.options?.responseFilter?.excludedKeys) {\n data = omit(data, this.options.responseFilter.excludedKeys);\n }\n\n return new OpenMeteoToolOutput(data);\n }\n\n @Cache()\n protected async _geocode(location: LocationSearch, signal: AbortSignal) {\n const { apiKey } = this.options;\n\n const params = createURLParams({\n name: location.name,\n language: location.language,\n country: location.country,\n format: \"json\",\n count: 1,\n });\n const response = await fetch(`https://geocoding-api.open-meteo.com/v1/search?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal,\n });\n if (!response.ok) {\n throw new ToolError(`Failed to GeoCode provided location (${location.name}).`, [\n new Error(await response.text()),\n ]);\n }\n\n const { results } = await response.json();\n if (!results || results.length === 0) {\n throw new ToolError(`Location '${location.name}' was not found.`);\n }\n return results[0];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["openMeteo.ts"],"names":["OpenMeteoToolOutput","JSONToolOutput","OpenMeteoTool","Tool","name","description","inputSchema","z","object","location","union","string","min","country","optional","language","default","strip","latitude","coerce","number","longitude","start_date","date","describe","end_date","temperature_unit","enum","emitter","Emitter","root","child","namespace","creator","register","options","responseFilter","excludedKeys","preprocessInput","rawInput","fixDate","key","value","getProp","setProp","substring","_run","startDate","endDate","input","_options","run","apiKey","prepareParams","extractLocation","response","_geocode","signal","pick","validateAndSetDates","startDateStr","endDateStr","now","Date","start","UTC","getFullYear","getMonth","getDate","end","ToolInputValidationError","toDateString","toISOString","split","createURLParams","pickBy","v","isNullish","current","daily","hourly","timezone","params","fetch","headers","Authorization","ok","ToolError","Error","text","data","json","omit","format","count","results","length"],"mappings":"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","file":"openMeteo.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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 { isNullish, omit, pick, pickBy } from \"remeda\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { getProp, setProp } from \"@/internals/helpers/object.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ResponseFilter {\n excludedKeys: (keyof OpenMeteoToolResponse)[];\n}\n\ninterface ToolOptions extends BaseToolOptions {\n apiKey?: string;\n responseFilter?: ResponseFilter;\n}\n\ntype ToolRunOptions = BaseToolRunOptions;\n\ninterface Location {\n latitude: number;\n longitude: number;\n}\n\ninterface LocationSearch {\n name: string;\n country?: string;\n language?: string;\n}\n\nexport interface OpenMeteoToolResponse {\n latitude?: number;\n longitude?: number;\n generationtime_ms?: number;\n utc_offset_seconds?: number;\n timezone?: string;\n timezone_abbreviation?: string;\n elevation?: number;\n current_units?: Record<string, string>;\n current?: Record<string, string>;\n hourly_units?: Record<string, string>;\n hourly?: Record<string, any[]>;\n daily_units?: Record<string, string>;\n daily?: Record<string, any[]>;\n}\n\nexport class OpenMeteoToolOutput extends JSONToolOutput<OpenMeteoToolResponse> {}\n\nexport class OpenMeteoTool extends Tool<OpenMeteoToolOutput, ToolOptions, ToolRunOptions> {\n name = \"OpenMeteo\";\n description = `Retrieve current, past, or future weather forecasts for a location.`;\n\n inputSchema() {\n return z\n .object({\n location: z.union([\n z\n .object({\n name: z.string().min(1),\n country: z.string().optional(),\n language: z.string().default(\"English\"),\n })\n .strip(),\n z\n .object({\n latitude: z.coerce.number(),\n longitude: z.coerce.number(),\n })\n .strip(),\n ]),\n start_date: z\n .string()\n .date()\n .describe(\"Start date for the weather forecast in the format YYYY-MM-DD (UTC)\"),\n end_date: z\n .string()\n .date()\n .describe(\"End date for the weather forecast in the format YYYY-MM-DD (UTC)\")\n .optional(),\n temperature_unit: z.enum([\"celsius\", \"fahrenheit\"]).default(\"celsius\"),\n })\n .strip();\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, OpenMeteoToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"weather\", \"openMeteo\"],\n creator: this,\n });\n\n static {\n this.register();\n }\n\n public constructor(options: Partial<ToolOptions> = {}) {\n super({\n ...options,\n responseFilter: options?.responseFilter ?? {\n excludedKeys: [\n \"latitude\",\n \"longitude\",\n \"generationtime_ms\",\n \"utc_offset_seconds\",\n \"timezone\",\n \"timezone_abbreviation\",\n \"elevation\",\n \"hourly\",\n \"hourly_units\",\n ],\n },\n });\n }\n\n protected preprocessInput(rawInput: unknown) {\n super.preprocessInput(rawInput);\n\n const fixDate = (key: keyof ToolInput<this>) => {\n const value = getProp(rawInput, [key]);\n if (value) {\n setProp(rawInput, [key], value.substring(0, 10));\n }\n };\n\n fixDate(\"start_date\");\n fixDate(\"end_date\");\n }\n\n protected async _run(\n { location, start_date: startDate, end_date: endDate, ...input }: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const { apiKey } = this.options;\n\n const prepareParams = async () => {\n const extractLocation = async (): Promise<Location> => {\n if (\"name\" in location) {\n const response = await this._geocode(location, run.signal);\n return pick(response, [\"latitude\", \"longitude\"]);\n }\n return location;\n };\n\n function validateAndSetDates(\n startDateStr: string,\n endDateStr?: string,\n ): { start: Date; end: Date } {\n const now = new Date();\n const start = startDateStr\n ? new Date(startDateStr)\n : new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));\n\n if (endDateStr) {\n const end = new Date(endDateStr);\n if (end < start) {\n throw new ToolInputValidationError(\n `The 'end_date' (${endDateStr}) has to occur on or after the 'start_date' (${startDateStr}).`,\n );\n }\n return { start: start, end: end };\n } else {\n // If endDate is undefined, set it to the start date\n return { start: start, end: new Date(start) };\n }\n }\n\n const { start, end } = validateAndSetDates(startDate, endDate);\n\n const toDateString = (date: Date) => date.toISOString().split(\"T\")[0];\n\n return createURLParams({\n ...pickBy(input, (v) => !isNullish(v) && v !== \"\"),\n ...(await extractLocation()),\n start_date: toDateString(start),\n end_date: toDateString(end),\n current: [\"temperature_2m\", \"rain\", \"relative_humidity_2m\", \"wind_speed_10m\"],\n daily: [\"temperature_2m_max\", \"temperature_2m_min\", \"rain_sum\"],\n hourly: [\"temperature_2m\", \"relative_humidity_2m\", \"rain\"],\n timezone: \"UTC\",\n });\n };\n\n const params = await prepareParams();\n const response = await fetch(`https://api.open-meteo.com/v1/forecast?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new ToolError(\"Request to OpenMeteo API has failed!\", [\n new Error(await response.text()),\n ]);\n }\n\n let data: OpenMeteoToolResponse = await response.json();\n\n if (this.options?.responseFilter?.excludedKeys) {\n data = omit(data, this.options.responseFilter.excludedKeys);\n }\n\n return new OpenMeteoToolOutput(data);\n }\n\n @Cache()\n protected async _geocode(location: LocationSearch, signal: AbortSignal) {\n const { apiKey } = this.options;\n\n const params = createURLParams({\n name: location.name,\n language: location.language,\n country: location.country,\n format: \"json\",\n count: 1,\n });\n const response = await fetch(`https://geocoding-api.open-meteo.com/v1/search?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal,\n });\n if (!response.ok) {\n throw new ToolError(`Failed to GeoCode provided location (${location.name}).`, [\n new Error(await response.text()),\n ]);\n }\n\n const { results } = await response.json();\n if (!results || results.length === 0) {\n throw new ToolError(`Location '${location.name}' was not found.`);\n }\n return results[0];\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webCrawler.ts"],"names":["WebCrawlerToolOutput","JSONToolOutput","getTextContent","result","url","statusCode","statusText","contentType","content","join","defaultParser","response","text","headers","get","includes","stripHtml","WebCrawlerTool","Tool","name","description","inputSchema","z","object","string","describe","client","parser","emitter","Emitter","root","child","namespace","creator","constructor","options","fetch","_run","_options","run","redirect","request","signal","status","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"webCrawler.cjs","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["webCrawler.ts"],"names":["WebCrawlerToolOutput","JSONToolOutput","getTextContent","result","url","statusCode","statusText","contentType","content","join","defaultParser","response","text","headers","get","includes","stripHtml","WebCrawlerTool","Tool","name","description","inputSchema","z","object","string","describe","client","parser","emitter","Emitter","root","child","namespace","creator","constructor","options","fetch","_run","_options","run","redirect","request","signal","status","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"webCrawler.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolInput,\n} from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { stripHtml } from \"string-strip-html\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\ninterface CrawlerOutput {\n url: string;\n statusCode: number;\n statusText: string;\n contentType: string;\n content: string;\n}\n\nexport class WebCrawlerToolOutput extends JSONToolOutput<CrawlerOutput> {\n @Cache()\n getTextContent(): string {\n return [\n `URL: ${this.result.url}`,\n `STATUS: ${this.result.statusCode} (${this.result.statusText})`,\n `CONTENT-TYPE: ${this.result.contentType}`,\n `CONTENT: ${this.result.content}`,\n ].join(\"\\n\");\n }\n}\n\nexport type HttpClient = (url: string, options?: RequestInit) => Promise<HttpClientResponse>;\ninterface HttpClientResponse {\n status: number;\n statusText: string;\n headers: Headers;\n text(): Promise<string>;\n}\n\ntype Parser = (response: HttpClientResponse) => Promise<string>;\ninterface WebsiteCrawlerToolOptions extends BaseToolOptions {\n client?: HttpClient;\n parser?: Parser;\n request?: RequestInit;\n}\n\nasync function defaultParser(response: HttpClientResponse) {\n const text = await response.text();\n if (text) {\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"text/html\")) {\n return stripHtml(text).result;\n }\n }\n return text || \"No Content\";\n}\n\nexport class WebCrawlerTool extends Tool<WebCrawlerToolOutput, WebsiteCrawlerToolOptions> {\n name = \"WebCrawler\";\n description = `Retrieves content of an arbitrary website.`;\n inputSchema() {\n return z.object({\n url: z.string().url().describe(\"Website URL\"),\n });\n }\n\n protected client: HttpClient;\n protected parser: Parser;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, WebCrawlerToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"webCrawler\"],\n creator: this,\n });\n\n constructor({ client, parser, ...options }: WebsiteCrawlerToolOptions = {}) {\n super(options);\n this.client = client ?? fetch;\n this.parser = parser ?? defaultParser;\n }\n\n protected async _run(\n { url }: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const response = await this.client(url, {\n redirect: \"follow\",\n ...this.options.request,\n signal: run.signal,\n });\n\n const content = await this.parser(response);\n return new WebCrawlerToolOutput({\n url,\n statusCode: response.status,\n statusText: response.statusText,\n contentType: response.headers.get(\"content-type\") ?? \"unknown\",\n content,\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n client: this.client,\n parser: this.parser,\n };\n }\n\n loadSnapshot({ client, parser, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, {\n client: client ?? fetch,\n parser: parser ?? defaultParser,\n });\n }\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import * as promise_based_task from 'promise-based-task';
|
|
|
3
3
|
import { JSONToolOutput, Tool, BaseToolOptions, ToolEmitter, ToolInput, BaseToolRunOptions } from '../base.cjs';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { RunContext } from '../../context.cjs';
|
|
6
|
-
import { E as Emitter } from '../../emitter-
|
|
6
|
+
import { E as Emitter } from '../../emitter-D5Mu0EEH.cjs';
|
|
7
7
|
import '../../internals/serializable.cjs';
|
|
8
8
|
import '../../internals/types.cjs';
|
|
9
9
|
import '../../internals/helpers/guards.cjs';
|
|
@@ -3,7 +3,7 @@ import * as promise_based_task from 'promise-based-task';
|
|
|
3
3
|
import { JSONToolOutput, Tool, BaseToolOptions, ToolEmitter, ToolInput, BaseToolRunOptions } from '../base.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { RunContext } from '../../context.js';
|
|
6
|
-
import { E as Emitter } from '../../emitter-
|
|
6
|
+
import { E as Emitter } from '../../emitter-C3dO-s2P.js';
|
|
7
7
|
import '../../internals/serializable.js';
|
|
8
8
|
import '../../internals/types.js';
|
|
9
9
|
import '../../internals/helpers/guards.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webCrawler.ts"],"names":["WebCrawlerToolOutput","JSONToolOutput","getTextContent","result","url","statusCode","statusText","contentType","content","join","defaultParser","response","text","headers","get","includes","stripHtml","WebCrawlerTool","Tool","name","description","inputSchema","z","object","string","describe","client","parser","emitter","Emitter","root","child","namespace","creator","constructor","options","fetch","_run","_options","run","redirect","request","signal","status","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"webCrawler.js","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["webCrawler.ts"],"names":["WebCrawlerToolOutput","JSONToolOutput","getTextContent","result","url","statusCode","statusText","contentType","content","join","defaultParser","response","text","headers","get","includes","stripHtml","WebCrawlerTool","Tool","name","description","inputSchema","z","object","string","describe","client","parser","emitter","Emitter","root","child","namespace","creator","constructor","options","fetch","_run","_options","run","redirect","request","signal","status","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"webCrawler.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolInput,\n} from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { stripHtml } from \"string-strip-html\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\ninterface CrawlerOutput {\n url: string;\n statusCode: number;\n statusText: string;\n contentType: string;\n content: string;\n}\n\nexport class WebCrawlerToolOutput extends JSONToolOutput<CrawlerOutput> {\n @Cache()\n getTextContent(): string {\n return [\n `URL: ${this.result.url}`,\n `STATUS: ${this.result.statusCode} (${this.result.statusText})`,\n `CONTENT-TYPE: ${this.result.contentType}`,\n `CONTENT: ${this.result.content}`,\n ].join(\"\\n\");\n }\n}\n\nexport type HttpClient = (url: string, options?: RequestInit) => Promise<HttpClientResponse>;\ninterface HttpClientResponse {\n status: number;\n statusText: string;\n headers: Headers;\n text(): Promise<string>;\n}\n\ntype Parser = (response: HttpClientResponse) => Promise<string>;\ninterface WebsiteCrawlerToolOptions extends BaseToolOptions {\n client?: HttpClient;\n parser?: Parser;\n request?: RequestInit;\n}\n\nasync function defaultParser(response: HttpClientResponse) {\n const text = await response.text();\n if (text) {\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"text/html\")) {\n return stripHtml(text).result;\n }\n }\n return text || \"No Content\";\n}\n\nexport class WebCrawlerTool extends Tool<WebCrawlerToolOutput, WebsiteCrawlerToolOptions> {\n name = \"WebCrawler\";\n description = `Retrieves content of an arbitrary website.`;\n inputSchema() {\n return z.object({\n url: z.string().url().describe(\"Website URL\"),\n });\n }\n\n protected client: HttpClient;\n protected parser: Parser;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, WebCrawlerToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"webCrawler\"],\n creator: this,\n });\n\n constructor({ client, parser, ...options }: WebsiteCrawlerToolOptions = {}) {\n super(options);\n this.client = client ?? fetch;\n this.parser = parser ?? defaultParser;\n }\n\n protected async _run(\n { url }: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const response = await this.client(url, {\n redirect: \"follow\",\n ...this.options.request,\n signal: run.signal,\n });\n\n const content = await this.parser(response);\n return new WebCrawlerToolOutput({\n url,\n statusCode: response.status,\n statusText: response.statusText,\n contentType: response.headers.get(\"content-type\") ?? \"unknown\",\n content,\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n client: this.client,\n parser: this.parser,\n };\n }\n\n loadSnapshot({ client, parser, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, {\n client: client ?? fetch,\n parser: parser ?? defaultParser,\n });\n }\n}\n"]}
|
package/dist/version.cjs
CHANGED
package/dist/version.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["version.ts"],"names":["Version","__LIBRARY_VERSION"],"mappings":";;AAkBIA,eAAU,GAAA;AACd,IAAI;AACFA,EAAUC,eAAAA,GAAAA,QAAAA;AACZ,CAAQ,CAAA,MAAA;AAER","file":"version.cjs","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["version.ts"],"names":["Version","__LIBRARY_VERSION"],"mappings":";;AAkBIA,eAAU,GAAA;AACd,IAAI;AACFA,EAAUC,eAAAA,GAAAA,QAAAA;AACZ,CAAQ,CAAA,MAAA;AAER","file":"version.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ndeclare const __LIBRARY_VERSION: string;\n\nlet Version = \"0.0.0\";\ntry {\n Version = __LIBRARY_VERSION;\n} catch {\n /* empty */\n}\n\nexport { Version };\n"]}
|
package/dist/version.d.cts
CHANGED
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["version.ts"],"names":["Version","__LIBRARY_VERSION"],"mappings":"AAkBA,IAAIA,OAAU,GAAA;AACd,IAAI;AACFA,EAAUC,OAAAA,GAAAA,QAAAA;AACZ,CAAQ,CAAA,MAAA;AAER","file":"version.js","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["version.ts"],"names":["Version","__LIBRARY_VERSION"],"mappings":"AAkBA,IAAIA,OAAU,GAAA;AACd,IAAI;AACFA,EAAUC,OAAAA,GAAAA,QAAAA;AACZ,CAAQ,CAAA,MAAA;AAER","file":"version.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ndeclare const __LIBRARY_VERSION: string;\n\nlet Version = \"0.0.0\";\ntry {\n Version = __LIBRARY_VERSION;\n} catch {\n /* empty */\n}\n\nexport { Version };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["agent.ts"],"names":["AgentWorkflow","workflow","schema","z","object","inputs","array","prompt","string","optional","context","expectedOutput","union","instanceof","ZodSchema","finalAnswer","newMessages","Message","default","constructor","name","Workflow","outputSchema","required","run","options","map","input","text","addAgent","agent","BaseAgent","clone","then","factory","memory","_add","meta","randomString","isFunction","_createFactory","delAgent","delStep","ToolCallingAgent","llm","tools","description","instructions","execution","templates","system","template","fork","config","defaults","role","addStep","state","ctx","UnconstrainedMemory","addMany","runInput","shift","undefined","asReadOnly","result","signal","push","UserMessage"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["agent.ts"],"names":["AgentWorkflow","workflow","schema","z","object","inputs","array","prompt","string","optional","context","expectedOutput","union","instanceof","ZodSchema","finalAnswer","newMessages","Message","default","constructor","name","Workflow","outputSchema","required","run","options","map","input","text","addAgent","agent","BaseAgent","clone","then","factory","memory","_add","meta","randomString","isFunction","_createFactory","delAgent","delStep","ToolCallingAgent","llm","tools","description","instructions","execution","templates","system","template","fork","config","defaults","role","addStep","state","ctx","UnconstrainedMemory","addMany","runInput","shift","undefined","asReadOnly","result","signal","push","UserMessage"],"mappings":";;;;;;;;;;;;AAgDO,MAAMA,aAAAA,CAAAA;EAhDb;;;AAiDqBC,EAAAA,QAAAA;AAEVC,EAAAA,MAAAA,GAASC,MAAEC,MAAO,CAAA;IACzBC,MAAQF,EAAAA,KAAAA,CAAEG,KACRH,CAAAA,KAAAA,CAAEC,MAAO,CAAA;MACPG,MAAQJ,EAAAA,KAAAA,CAAEK,MAAM,EAAA,CAAGC,QAAQ,EAAA;MAC3BC,OAASP,EAAAA,KAAAA,CAAEK,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BE,MAAAA,cAAAA,EAAgBR,MAAES,KAAM,CAAA;AAACT,QAAAA,KAAAA,CAAEK,MAAM,EAAA;QAAIL,KAAEU,CAAAA,UAAAA,CAAWV,MAAEW,SAAS;AAAE,OAAA,CAAA,CAAEL,QAAQ;AAC3E,KAAA,CAAA,CAAA;IAGFM,WAAaZ,EAAAA,KAAAA,CAAEK,MAAM,EAAA,CAAGC,QAAQ,EAAA;IAChCO,WAAab,EAAAA,KAAAA,CAAEG,MAAMH,KAAEU,CAAAA,UAAAA,CAAWI,mBAAAA,CAAAA,CAAAA,CAAUC,OAAQ,CAAA,EAAE;GACxD,CAAA;AAEAC,EAAAA,WAAAA,CAAYC,OAAO,eAAiB,EAAA;AAClC,IAAKnB,IAAAA,CAAAA,QAAAA,GAAW,IAAIoB,qBAAS,CAAA;AAC3BD,MAAAA,IAAAA;AACAlB,MAAAA,MAAAA,EAAQ,IAAKA,CAAAA,MAAAA;MACboB,YAAc,EAAA,IAAA,CAAKpB,OAAOqB,QAAQ;KACpC,CAAA;AACF;EAEAC,GAAInB,CAAAA,MAAAA,EAAgDoB,OAAsC,GAAA,EAAI,EAAA;AAC5F,IAAO,OAAA,IAAA,CAAKxB,SAASuB,GACnB,CAAA;AACEnB,MAAAA,MAAAA,EAAQA,MAAOqB,CAAAA,GAAAA,CAAI,CAACC,KAAAA,KAAWA,iBAAiBV,mBAAU,GAAA;AAAEV,QAAAA,MAAAA,EAAQoB,KAAMC,CAAAA;AAAK,OAAA,GAAID,KAAAA;AACrF,KAAA,EACAF,OAAAA,CAAAA;AAEJ;AAIAI,EAAAA,QAAAA,CAASC,KAA+E,EAAA;AACtF,IAAA,IAAIA,iBAAiBC,kBAAW,EAAA;AAC9B,MAAA,OAAOD,KAAME,CAAAA,KAAAA,EAAQC,CAAAA,IAAAA,CAAK,CAACD,KAAAA,KAAAA;AACzB,QAAME,MAAAA,OAAAA,2BAAyBC,MAAAA,KAAAA;AAC7BH,UAAAA,KAAAA,CAAMG,MAASA,GAAAA,MAAAA;AACf,UAAOH,OAAAA,KAAAA;SAFqB,EAAA,SAAA,CAAA;AAI9B,QAAA,OAAO,IAAKI,CAAAA,IAAAA,CAAKJ,KAAMK,CAAAA,IAAAA,CAAKjB,MAAMc,OAAAA,CAAAA;OACpC,CAAA;AACF;AAEA,IAAA,MAAMd,OAAOU,KAAMV,CAAAA,IAAAA,IAAQ,CAAQkB,KAAAA,EAAAA,mBAAAA,CAAa,CAAA,CAAA,CAAA,CAAA;AAChD,IAAO,OAAA,IAAA,CAAKF,IAAKhB,CAAAA,IAAAA,EAAMmB,iBAAWT,CAAAA,KAAAA,IAASA,KAAQ,GAAA,IAAA,CAAKU,cAAeV,CAAAA,KAAAA,CAAAA,CAAAA;AACzE;AAEAW,EAAAA,QAAAA,CAASrB,IAAc,EAAA;AACrB,IAAO,OAAA,IAAA,CAAKnB,QAASyC,CAAAA,OAAAA,CAAQtB,IAAAA,CAAAA;AAC/B;AAEUoB,EAAAA,cAAAA,CAAeb,KAAwC,EAAA;AAC/D,IAAO,OAAA,CAACQ,MACN,KAAA,IAAIQ,0BAAiB,CAAA;AACnBC,MAAAA,GAAAA,EAAKjB,KAAMiB,CAAAA,GAAAA;MACXC,KAAOlB,EAAAA,KAAAA,CAAMkB,SAAS,EAAA;AACtBV,MAAAA,MAAAA;MACAE,IAAM,EAAA;AACJjB,QAAAA,IAAAA,EAAMO,KAAMP,CAAAA,IAAAA,IAAQ,CAAQkB,KAAAA,EAAAA,mBAAAA,CAAa,CAAA,CAAA,CAAA,CAAA;AACzCQ,QAAAA,WAAAA,EAAanB,MAAMoB,YAAgB,IAAA;AACrC,OAAA;AACAC,MAAAA,SAAAA,EAAWrB,KAAMqB,CAAAA,SAAAA;AACjB,MAAA,GAAIrB,MAAMoB,YAAgB,IAAA;QACxBE,SAAW,EAAA;AACTC,UAAAA,MAAAA,kBAASC,MAAAA,CAAAA,CAAAA,QAAAA,KACPA,QAASC,CAAAA,IAAAA,CAAK,CAACC,MAAAA,KAAAA;AACbA,YAAAA,MAAAA,CAAOC,QAASP,CAAAA,YAAAA,GAAepB,KAAMoB,CAAAA,YAAAA,IAAgBM,OAAOC,QAASP,CAAAA,YAAAA;AACrEM,YAAAA,MAAAA,CAAOC,QAASC,CAAAA,IAAAA,GAAO5B,KAAM4B,CAAAA,IAAAA,IAAQF,OAAOC,QAASC,CAAAA,IAAAA;AACvD,WAAA,CAJM,EAAA,QAAA;AAKV;AACF;KACF,CAAA;AACJ;AAEUnB,EAAAA,IAAAA,CAAKhB,MAAcc,OAAuB,EAAA;AAClD,IAAA,IAAA,CAAKjC,QAASuD,CAAAA,OAAAA,CAAQpC,IAAM,EAAA,OAAOqC,OAAOC,GAAAA,KAAAA;AACxC,MAAMvB,MAAAA,MAAAA,GAAS,IAAIwB,2CAAAA,EAAAA;AACnB,MAAMxB,MAAAA,MAAAA,CAAOyB,OAAQH,CAAAA,KAAAA,CAAMzC,WAAW,CAAA;AAEtC,MAAA,MAAM6C,QAAWJ,GAAAA,KAAAA,CAAMpD,MAAOyD,CAAAA,KAAAA,EAAW,IAAA;QAAEvD,MAAQwD,EAAAA;AAAU,OAAA;AAC7D,MAAA,MAAMjC,KAAQ,GAAA,MAAMI,OAAQC,CAAAA,MAAAA,CAAO6B,YAAU,CAAA;AAC7C,MAAA,MAAM,EAAEC,MAAM,EAAA,GAAK,MAAMnC,KAAAA,CAAMN,IAAIqC,QAAU,EAAA;AAAEK,QAAAA,MAAAA,EAAQR,GAAIQ,CAAAA;OAAO,CAAA;AAClET,MAAAA,KAAAA,CAAM1C,cAAckD,MAAOrC,CAAAA,IAAAA;AAC3B,MAAA,IAAIiC,SAAStD,MAAQ,EAAA;AACnBkD,QAAAA,KAAAA,CAAMzC,YAAYmD,IAAK,CAAA,IAAIC,uBAAYP,CAAAA,QAAAA,CAAStD,MAAM,CAAA,CAAA;AACxD;AACAkD,MAAMzC,KAAAA,CAAAA,WAAAA,CAAYmD,KAAKF,MAAAA,CAAAA;KACzB,CAAA;AACA,IAAO,OAAA,IAAA;AACT;AACF","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Workflow, WorkflowRunOptions } from \"@/workflows/workflow.js\";\nimport { Message, UserMessage } from \"@/backend/message.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { BaseMemory, ReadOnlyMemory } from \"@/memory/base.js\";\nimport { z } from \"zod\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport { isFunction, randomString } from \"remeda\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { ToolCallingAgent } from \"@/agents/toolCalling/agent.js\";\nimport {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n} from \"@/agents/toolCalling/types.js\";\n\ntype AgentInstance = BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n>;\ntype AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;\ninterface AgentFactoryInput {\n name?: string;\n role?: string;\n llm: ChatModel;\n instructions?: string;\n tools?: AnyTool[];\n execution?: ToolCallingAgentExecutionConfig;\n}\n\nexport class AgentWorkflow {\n protected readonly workflow;\n\n readonly schema = z.object({\n inputs: z.array(\n z.object({\n prompt: z.string().optional(),\n context: z.string().optional(),\n expectedOutput: z.union([z.string(), z.instanceof(z.ZodSchema)]).optional(),\n }),\n ),\n\n finalAnswer: z.string().optional(),\n newMessages: z.array(z.instanceof(Message)).default([]),\n });\n\n constructor(name = \"AgentWorkflow\") {\n this.workflow = new Workflow({\n name,\n schema: this.schema,\n outputSchema: this.schema.required(),\n });\n }\n\n run(inputs: (ToolCallingAgentRunInput | Message)[], options: WorkflowRunOptions<string> = {}) {\n return this.workflow.run(\n {\n inputs: inputs.map((input) => (input instanceof Message ? { prompt: input.text } : input)),\n },\n options,\n );\n }\n\n addAgent(agent: AgentFactory | AgentFactoryInput): this;\n addAgent(agent: AgentInstance): Promise<this>;\n addAgent(agent: AgentInstance | AgentFactory | AgentFactoryInput): this | Promise<this> {\n if (agent instanceof BaseAgent) {\n return agent.clone().then((clone) => {\n const factory: AgentFactory = (memory) => {\n clone.memory = memory;\n return clone;\n };\n return this._add(clone.meta.name, factory);\n });\n }\n\n const name = agent.name || `Agent${randomString(4)}`;\n return this._add(name, isFunction(agent) ? agent : this._createFactory(agent));\n }\n\n delAgent(name: string) {\n return this.workflow.delStep(name);\n }\n\n protected _createFactory(input: AgentFactoryInput): AgentFactory {\n return (memory: BaseMemory) =>\n new ToolCallingAgent({\n llm: input.llm,\n tools: input.tools ?? [],\n memory,\n meta: {\n name: input.name || `Agent${randomString(4)}`,\n description: input.instructions ?? \"\",\n },\n execution: input.execution,\n ...(input.instructions && {\n templates: {\n system: (template) =>\n template.fork((config) => {\n config.defaults.instructions = input.instructions || config.defaults.instructions;\n config.defaults.role = input.role || config.defaults.role;\n }),\n },\n }),\n });\n }\n\n protected _add(name: string, factory: AgentFactory) {\n this.workflow.addStep(name, async (state, ctx) => {\n const memory = new UnconstrainedMemory();\n await memory.addMany(state.newMessages);\n\n const runInput = state.inputs.shift() ?? { prompt: undefined };\n const agent = await factory(memory.asReadOnly());\n const { result } = await agent.run(runInput, { signal: ctx.signal });\n state.finalAnswer = result.text;\n if (runInput.prompt) {\n state.newMessages.push(new UserMessage(runInput.prompt));\n }\n state.newMessages.push(result);\n });\n return this;\n }\n}\n"]}
|
|
@@ -4,10 +4,10 @@ import { Message, MessageContentPart } from '../backend/message.cjs';
|
|
|
4
4
|
import { AnyTool } from '../tools/base.cjs';
|
|
5
5
|
import { ReadOnlyMemory } from '../memory/base.cjs';
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
-
import { a as BaseAgent } from '../base-
|
|
8
|
-
import { ChatModel } from '../
|
|
7
|
+
import { a as BaseAgent } from '../base-szR2Izbt.cjs';
|
|
8
|
+
import { m as ChatModel } from '../chat-DvMzAHj6.cjs';
|
|
9
9
|
import { ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions, ToolCallingAgentExecutionConfig } from '../agents/toolCalling/types.cjs';
|
|
10
|
-
import '../emitter-
|
|
10
|
+
import '../emitter-D5Mu0EEH.cjs';
|
|
11
11
|
import '../internals/types.cjs';
|
|
12
12
|
import '../internals/helpers/guards.cjs';
|
|
13
13
|
import '../internals/serializable.cjs';
|
|
@@ -19,11 +19,11 @@ import 'promise-based-task';
|
|
|
19
19
|
import '../cache/base.cjs';
|
|
20
20
|
import '../internals/helpers/schema.cjs';
|
|
21
21
|
import 'zod-to-json-schema';
|
|
22
|
-
import '../backend/utils.cjs';
|
|
23
22
|
import '../backend/constants.cjs';
|
|
24
|
-
import '@ai-sdk/provider';
|
|
25
|
-
import '../agents/toolCalling/prompts.cjs';
|
|
26
23
|
import '../template.cjs';
|
|
24
|
+
import '../logger/logger.cjs';
|
|
25
|
+
import 'pino';
|
|
26
|
+
import '../agents/toolCalling/prompts.cjs';
|
|
27
27
|
|
|
28
28
|
type AgentInstance = BaseAgent<ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions>;
|
|
29
29
|
type AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;
|
|
@@ -4,10 +4,10 @@ import { Message, MessageContentPart } from '../backend/message.js';
|
|
|
4
4
|
import { AnyTool } from '../tools/base.js';
|
|
5
5
|
import { ReadOnlyMemory } from '../memory/base.js';
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
-
import { a as BaseAgent } from '../base-
|
|
8
|
-
import { ChatModel } from '../
|
|
7
|
+
import { a as BaseAgent } from '../base-BOCDDBvG.js';
|
|
8
|
+
import { m as ChatModel } from '../chat-BdN8hGWn.js';
|
|
9
9
|
import { ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions, ToolCallingAgentExecutionConfig } from '../agents/toolCalling/types.js';
|
|
10
|
-
import '../emitter-
|
|
10
|
+
import '../emitter-C3dO-s2P.js';
|
|
11
11
|
import '../internals/types.js';
|
|
12
12
|
import '../internals/helpers/guards.js';
|
|
13
13
|
import '../internals/serializable.js';
|
|
@@ -19,11 +19,11 @@ import 'promise-based-task';
|
|
|
19
19
|
import '../cache/base.js';
|
|
20
20
|
import '../internals/helpers/schema.js';
|
|
21
21
|
import 'zod-to-json-schema';
|
|
22
|
-
import '../backend/utils.js';
|
|
23
22
|
import '../backend/constants.js';
|
|
24
|
-
import '@ai-sdk/provider';
|
|
25
|
-
import '../agents/toolCalling/prompts.js';
|
|
26
23
|
import '../template.js';
|
|
24
|
+
import '../logger/logger.js';
|
|
25
|
+
import 'pino';
|
|
26
|
+
import '../agents/toolCalling/prompts.js';
|
|
27
27
|
|
|
28
28
|
type AgentInstance = BaseAgent<ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions>;
|
|
29
29
|
type AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["agent.ts"],"names":["AgentWorkflow","workflow","schema","z","object","inputs","array","prompt","string","optional","context","expectedOutput","union","instanceof","ZodSchema","finalAnswer","newMessages","Message","default","constructor","name","Workflow","outputSchema","required","run","options","map","input","text","addAgent","agent","BaseAgent","clone","then","factory","memory","_add","meta","randomString","isFunction","_createFactory","delAgent","delStep","ToolCallingAgent","llm","tools","description","instructions","execution","templates","system","template","fork","config","defaults","role","addStep","state","ctx","UnconstrainedMemory","addMany","runInput","shift","undefined","asReadOnly","result","signal","push","UserMessage"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["agent.ts"],"names":["AgentWorkflow","workflow","schema","z","object","inputs","array","prompt","string","optional","context","expectedOutput","union","instanceof","ZodSchema","finalAnswer","newMessages","Message","default","constructor","name","Workflow","outputSchema","required","run","options","map","input","text","addAgent","agent","BaseAgent","clone","then","factory","memory","_add","meta","randomString","isFunction","_createFactory","delAgent","delStep","ToolCallingAgent","llm","tools","description","instructions","execution","templates","system","template","fork","config","defaults","role","addStep","state","ctx","UnconstrainedMemory","addMany","runInput","shift","undefined","asReadOnly","result","signal","push","UserMessage"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Workflow, WorkflowRunOptions } from \"@/workflows/workflow.js\";\nimport { Message, UserMessage } from \"@/backend/message.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { BaseMemory, ReadOnlyMemory } from \"@/memory/base.js\";\nimport { z } from \"zod\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport { isFunction, randomString } from \"remeda\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { ToolCallingAgent } from \"@/agents/toolCalling/agent.js\";\nimport {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n} from \"@/agents/toolCalling/types.js\";\n\ntype AgentInstance = BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n>;\ntype AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;\ninterface AgentFactoryInput {\n name?: string;\n role?: string;\n llm: ChatModel;\n instructions?: string;\n tools?: AnyTool[];\n execution?: ToolCallingAgentExecutionConfig;\n}\n\nexport class AgentWorkflow {\n protected readonly workflow;\n\n readonly schema = z.object({\n inputs: z.array(\n z.object({\n prompt: z.string().optional(),\n context: z.string().optional(),\n expectedOutput: z.union([z.string(), z.instanceof(z.ZodSchema)]).optional(),\n }),\n ),\n\n finalAnswer: z.string().optional(),\n newMessages: z.array(z.instanceof(Message)).default([]),\n });\n\n constructor(name = \"AgentWorkflow\") {\n this.workflow = new Workflow({\n name,\n schema: this.schema,\n outputSchema: this.schema.required(),\n });\n }\n\n run(inputs: (ToolCallingAgentRunInput | Message)[], options: WorkflowRunOptions<string> = {}) {\n return this.workflow.run(\n {\n inputs: inputs.map((input) => (input instanceof Message ? { prompt: input.text } : input)),\n },\n options,\n );\n }\n\n addAgent(agent: AgentFactory | AgentFactoryInput): this;\n addAgent(agent: AgentInstance): Promise<this>;\n addAgent(agent: AgentInstance | AgentFactory | AgentFactoryInput): this | Promise<this> {\n if (agent instanceof BaseAgent) {\n return agent.clone().then((clone) => {\n const factory: AgentFactory = (memory) => {\n clone.memory = memory;\n return clone;\n };\n return this._add(clone.meta.name, factory);\n });\n }\n\n const name = agent.name || `Agent${randomString(4)}`;\n return this._add(name, isFunction(agent) ? agent : this._createFactory(agent));\n }\n\n delAgent(name: string) {\n return this.workflow.delStep(name);\n }\n\n protected _createFactory(input: AgentFactoryInput): AgentFactory {\n return (memory: BaseMemory) =>\n new ToolCallingAgent({\n llm: input.llm,\n tools: input.tools ?? [],\n memory,\n meta: {\n name: input.name || `Agent${randomString(4)}`,\n description: input.instructions ?? \"\",\n },\n execution: input.execution,\n ...(input.instructions && {\n templates: {\n system: (template) =>\n template.fork((config) => {\n config.defaults.instructions = input.instructions || config.defaults.instructions;\n config.defaults.role = input.role || config.defaults.role;\n }),\n },\n }),\n });\n }\n\n protected _add(name: string, factory: AgentFactory) {\n this.workflow.addStep(name, async (state, ctx) => {\n const memory = new UnconstrainedMemory();\n await memory.addMany(state.newMessages);\n\n const runInput = state.inputs.shift() ?? { prompt: undefined };\n const agent = await factory(memory.asReadOnly());\n const { result } = await agent.run(runInput, { signal: ctx.signal });\n state.finalAnswer = result.text;\n if (runInput.prompt) {\n state.newMessages.push(new UserMessage(runInput.prompt));\n }\n state.newMessages.push(result);\n });\n return this;\n }\n}\n"]}
|