beeai-framework 0.1.9 → 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 +51 -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 +54 -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-Bpt7IFa_.d.cts → agent-Ca5UE2P1.d.cts} +3 -3
- package/dist/{agent-Bf2FaCKy.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 +8 -8
- package/dist/agents/react/runners/granite/runner.d.ts +8 -8
- 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-mmG-8Pk9.d.ts → base-BOCDDBvG.d.ts} +2 -2
- package/dist/{base-daM6fHUP.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-BxVxGBbJ.d.ts → emitter-C3dO-s2P.d.ts} +2 -2
- package/dist/{emitter-C9EN5B0j.d.cts → emitter-D5Mu0EEH.d.cts} +2 -2
- 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 +4 -4
- package/dist/tools/database/milvus.d.ts +4 -4
- 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 +43 -43
- package/dist/workflows/agent.d.ts +43 -43
- 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
|
@@ -5,26 +5,27 @@ import '../../../backend/client.cjs';
|
|
|
5
5
|
import '../../../internals/serializable.cjs';
|
|
6
6
|
import '../../../internals/types.cjs';
|
|
7
7
|
import '../../../internals/helpers/guards.cjs';
|
|
8
|
-
import '../../../
|
|
8
|
+
import '../../../logger/logger.cjs';
|
|
9
|
+
import 'pino';
|
|
10
|
+
import '../../../errors.cjs';
|
|
11
|
+
import '../../../chat-DvMzAHj6.cjs';
|
|
9
12
|
import '../../../backend/message.cjs';
|
|
10
13
|
import 'ai';
|
|
11
14
|
import '../../../context.cjs';
|
|
12
|
-
import '../../../emitter-
|
|
15
|
+
import '../../../emitter-D5Mu0EEH.cjs';
|
|
13
16
|
import '../../../internals/helpers/promise.cjs';
|
|
14
|
-
import '../../../errors.cjs';
|
|
15
17
|
import 'promise-based-task';
|
|
16
18
|
import '../../../cache/base.cjs';
|
|
17
|
-
import '../../../backend/utils.cjs';
|
|
18
19
|
import '../../../backend/constants.cjs';
|
|
19
20
|
import '../../../tools/base.cjs';
|
|
20
21
|
import 'ajv';
|
|
21
22
|
import '../../../internals/helpers/schema.cjs';
|
|
22
23
|
import 'zod';
|
|
23
24
|
import 'zod-to-json-schema';
|
|
24
|
-
import '
|
|
25
|
+
import '../../../template.cjs';
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
|
-
* Copyright 2025
|
|
28
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
28
29
|
*
|
|
29
30
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
30
31
|
* you may not use this file except in compliance with the License.
|
|
@@ -5,26 +5,27 @@ import '../../../backend/client.js';
|
|
|
5
5
|
import '../../../internals/serializable.js';
|
|
6
6
|
import '../../../internals/types.js';
|
|
7
7
|
import '../../../internals/helpers/guards.js';
|
|
8
|
-
import '../../../
|
|
8
|
+
import '../../../logger/logger.js';
|
|
9
|
+
import 'pino';
|
|
10
|
+
import '../../../errors.js';
|
|
11
|
+
import '../../../chat-BdN8hGWn.js';
|
|
9
12
|
import '../../../backend/message.js';
|
|
10
13
|
import 'ai';
|
|
11
14
|
import '../../../context.js';
|
|
12
|
-
import '../../../emitter-
|
|
15
|
+
import '../../../emitter-C3dO-s2P.js';
|
|
13
16
|
import '../../../internals/helpers/promise.js';
|
|
14
|
-
import '../../../errors.js';
|
|
15
17
|
import 'promise-based-task';
|
|
16
18
|
import '../../../cache/base.js';
|
|
17
|
-
import '../../../backend/utils.js';
|
|
18
19
|
import '../../../backend/constants.js';
|
|
19
20
|
import '../../../tools/base.js';
|
|
20
21
|
import 'ajv';
|
|
21
22
|
import '../../../internals/helpers/schema.js';
|
|
22
23
|
import 'zod';
|
|
23
24
|
import 'zod-to-json-schema';
|
|
24
|
-
import '
|
|
25
|
+
import '../../../template.js';
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
|
-
* Copyright 2025
|
|
28
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
28
29
|
*
|
|
29
30
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
30
31
|
* you may not use this file except in compliance with the License.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["chat.ts"],"names":["OpenAIChatModel","VercelChatModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","chat"],"mappings":";;;;;;AAyBO,MAAMA,wBAAwBC,eAAAA,CAAAA;EAzBrC;;;EA0BEC,WACEC,CAAAA,OAAAA,GAA6BC,OAAO,mBAAqB,EAAA,QAAA,GACzDC,QAAoC,GAAA,IACpCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,IAAAA,CAAKR,SAASE,QAAAA,CAAAA;AACjE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"chat.js","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["chat.ts"],"names":["OpenAIChatModel","VercelChatModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","chat"],"mappings":";;;;;;AAyBO,MAAMA,wBAAwBC,eAAAA,CAAAA;EAzBrC;;;EA0BEC,WACEC,CAAAA,OAAAA,GAA6BC,OAAO,mBAAqB,EAAA,QAAA,GACzDC,QAAoC,GAAA,IACpCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,IAAAA,CAAKR,SAASE,QAAAA,CAAAA;AACjE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"chat.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 { OpenAIProvider } from \"@ai-sdk/openai\";\nimport { OpenAIClient, OpenAIClientSettings } from \"@/adapters/openai/backend/client.js\";\nimport { VercelChatModel } from \"@/adapters/vercel/backend/chat.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"chat\"]>;\nexport type OpenAIChatModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIChatModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIChatModel extends VercelChatModel {\n constructor(\n modelId: OpenAIChatModelId = getEnv(\"OPENAI_CHAT_MODEL\", \"gpt-4o\"),\n settings: OpenAIChatModelSettings = {},\n client?: OpenAIClient | OpenAIClientSettings,\n ) {\n const model = OpenAIClient.ensure(client).instance.chat(modelId, settings);\n super(model);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["client.ts"],"names":["OpenAIClient","BackendClient","create","extraHeaders","parseEnv","z","preprocess","value","Object","fromEntries","String","split","filter","pair","includes","map","record","string","baseURL","settings","getEnv","compatibility","createOpenAI","apiKey","headers"],"mappings":";;;;;;;;;AAuBO,MAAMA,qBAAqBC,wBAAAA,CAAAA;EAvBlC;;;EAwBYC,MAAyB,GAAA;AACjC,IAAA,MAAMC,eAAeC,gBACnB,CAAA,oBAAA,EACAC,KAAEC,CAAAA,UAAAA,CAAW,CAACC,KAAAA,KAAAA;AACZ,MAAOC,OAAAA,MAAAA,CAAOC,WACZC,CAAAA,MAAAA,CAAOH,KAAS,IAAA,EAAA,EACbI,KAAM,CAAA,GAAA,CACNC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,QAAS,CAAA,GAAA,CAAA,CAAA,CAC/BC,GAAI,CAAA,CAACF,SAASA,IAAKF,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAA,CAAA;AAEhC,KAAA,EAAGN,MAAEW,MAAOX,CAAAA,KAAAA,CAAEY,MAAM,EAAA,CAAA,CAAA,CAAA;AAGtB,IAAA,MAAMC,OAAU,GAAA,IAAA,CAAKC,QAAUD,EAAAA,OAAAA,IAAWE,eAAO,qBAAA,CAAA;AACjD,IAAA,IAAIC,aACF,GAAA,IAAA,CAAKF,QAAUE,EAAAA,aAAAA,IAAiBD,eAAO,2BAAA,CAAA;AACzC,IAAIF,IAAAA,OAAAA,IAAW,CAACG,aAAe,EAAA;AAC7BA,MAAgB,aAAA,GAAA,YAAA;KACP,MAAA,IAAA,CAACH,OAAW,IAAA,CAACG,aAAe,EAAA;AACrCA,MAAgB,aAAA,GAAA,QAAA;AAClB;AAEA,IAAA,OAAOC,mBAAa,CAAA;AAClB,MAAA,GAAG,IAAKH,CAAAA,QAAAA;AACRE,MAAAA,aAAAA;AACAE,MAAAA,MAAAA,EAAQ,IAAKJ,CAAAA,QAAAA,EAAUI,MAAUH,IAAAA,cAAAA,CAAO,gBAAA,CAAA;AACxCF,MAAAA,OAAAA;MACAM,OAAS,EAAA;QACP,GAAGrB,YAAAA;AACH,QAAA,GAAG,KAAKgB,QAAUK,EAAAA;AACpB;KACF,CAAA;AACF;AACF","file":"client.cjs","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["client.ts"],"names":["OpenAIClient","BackendClient","create","extraHeaders","parseEnv","z","preprocess","value","Object","fromEntries","String","split","filter","pair","includes","map","record","string","baseURL","settings","getEnv","compatibility","createOpenAI","apiKey","headers"],"mappings":";;;;;;;;;AAuBO,MAAMA,qBAAqBC,wBAAAA,CAAAA;EAvBlC;;;EAwBYC,MAAyB,GAAA;AACjC,IAAA,MAAMC,eAAeC,gBACnB,CAAA,oBAAA,EACAC,KAAEC,CAAAA,UAAAA,CAAW,CAACC,KAAAA,KAAAA;AACZ,MAAOC,OAAAA,MAAAA,CAAOC,WACZC,CAAAA,MAAAA,CAAOH,KAAS,IAAA,EAAA,EACbI,KAAM,CAAA,GAAA,CACNC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,QAAS,CAAA,GAAA,CAAA,CAAA,CAC/BC,GAAI,CAAA,CAACF,SAASA,IAAKF,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAA,CAAA;AAEhC,KAAA,EAAGN,MAAEW,MAAOX,CAAAA,KAAAA,CAAEY,MAAM,EAAA,CAAA,CAAA,CAAA;AAGtB,IAAA,MAAMC,OAAU,GAAA,IAAA,CAAKC,QAAUD,EAAAA,OAAAA,IAAWE,eAAO,qBAAA,CAAA;AACjD,IAAA,IAAIC,aACF,GAAA,IAAA,CAAKF,QAAUE,EAAAA,aAAAA,IAAiBD,eAAO,2BAAA,CAAA;AACzC,IAAIF,IAAAA,OAAAA,IAAW,CAACG,aAAe,EAAA;AAC7BA,MAAgB,aAAA,GAAA,YAAA;KACP,MAAA,IAAA,CAACH,OAAW,IAAA,CAACG,aAAe,EAAA;AACrCA,MAAgB,aAAA,GAAA,QAAA;AAClB;AAEA,IAAA,OAAOC,mBAAa,CAAA;AAClB,MAAA,GAAG,IAAKH,CAAAA,QAAAA;AACRE,MAAAA,aAAAA;AACAE,MAAAA,MAAAA,EAAQ,IAAKJ,CAAAA,QAAAA,EAAUI,MAAUH,IAAAA,cAAAA,CAAO,gBAAA,CAAA;AACxCF,MAAAA,OAAAA;MACAM,OAAS,EAAA;QACP,GAAGrB,YAAAA;AACH,QAAA,GAAG,KAAKgB,QAAUK,EAAAA;AACpB;KACF,CAAA;AACF;AACF","file":"client.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 { createOpenAI, OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { getEnv, parseEnv } from \"@/internals/env.js\";\nimport { z } from \"zod\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport type OpenAIClientSettings = OpenAIProviderSettings;\n\nexport class OpenAIClient extends BackendClient<OpenAIClientSettings, OpenAIProvider> {\n protected create(): OpenAIProvider {\n const extraHeaders = parseEnv(\n \"OPENAI_API_HEADERS\",\n z.preprocess((value) => {\n return Object.fromEntries(\n String(value || \"\")\n .split(\",\")\n .filter((pair) => pair.includes(\"=\"))\n .map((pair) => pair.split(\"=\")),\n );\n }, z.record(z.string())),\n );\n\n const baseURL = this.settings?.baseURL || getEnv(\"OPENAI_API_ENDPOINT\");\n let compatibility: string | undefined =\n this.settings?.compatibility || getEnv(\"OPENAI_COMPATIBILITY_MODE\");\n if (baseURL && !compatibility) {\n compatibility = \"compatible\";\n } else if (!baseURL && !compatibility) {\n compatibility = \"strict\";\n }\n\n return createOpenAI({\n ...this.settings,\n compatibility: compatibility as \"strict\" | \"compatible\" | undefined,\n apiKey: this.settings?.apiKey || getEnv(\"OPENAI_API_KEY\"),\n baseURL,\n headers: {\n ...extraHeaders,\n ...this.settings?.headers,\n },\n });\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@ import '../../../internals/types.cjs';
|
|
|
5
5
|
import '../../../internals/helpers/guards.cjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Copyright 2025
|
|
8
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
9
9
|
*
|
|
10
10
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
11
|
* you may not use this file except in compliance with the License.
|
|
@@ -5,7 +5,7 @@ import '../../../internals/types.js';
|
|
|
5
5
|
import '../../../internals/helpers/guards.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Copyright 2025
|
|
8
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
9
9
|
*
|
|
10
10
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
11
|
* you may not use this file except in compliance with the License.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["client.ts"],"names":["OpenAIClient","BackendClient","create","extraHeaders","parseEnv","z","preprocess","value","Object","fromEntries","String","split","filter","pair","includes","map","record","string","baseURL","settings","getEnv","compatibility","createOpenAI","apiKey","headers"],"mappings":";;;;;;;AAuBO,MAAMA,qBAAqBC,aAAAA,CAAAA;EAvBlC;;;EAwBYC,MAAyB,GAAA;AACjC,IAAA,MAAMC,eAAeC,QACnB,CAAA,oBAAA,EACAC,CAAEC,CAAAA,UAAAA,CAAW,CAACC,KAAAA,KAAAA;AACZ,MAAOC,OAAAA,MAAAA,CAAOC,WACZC,CAAAA,MAAAA,CAAOH,KAAS,IAAA,EAAA,EACbI,KAAM,CAAA,GAAA,CACNC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,QAAS,CAAA,GAAA,CAAA,CAAA,CAC/BC,GAAI,CAAA,CAACF,SAASA,IAAKF,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAA,CAAA;AAEhC,KAAA,EAAGN,EAAEW,MAAOX,CAAAA,CAAAA,CAAEY,MAAM,EAAA,CAAA,CAAA,CAAA;AAGtB,IAAA,MAAMC,OAAU,GAAA,IAAA,CAAKC,QAAUD,EAAAA,OAAAA,IAAWE,OAAO,qBAAA,CAAA;AACjD,IAAA,IAAIC,aACF,GAAA,IAAA,CAAKF,QAAUE,EAAAA,aAAAA,IAAiBD,OAAO,2BAAA,CAAA;AACzC,IAAIF,IAAAA,OAAAA,IAAW,CAACG,aAAe,EAAA;AAC7BA,MAAgB,aAAA,GAAA,YAAA;KACP,MAAA,IAAA,CAACH,OAAW,IAAA,CAACG,aAAe,EAAA;AACrCA,MAAgB,aAAA,GAAA,QAAA;AAClB;AAEA,IAAA,OAAOC,YAAa,CAAA;AAClB,MAAA,GAAG,IAAKH,CAAAA,QAAAA;AACRE,MAAAA,aAAAA;AACAE,MAAAA,MAAAA,EAAQ,IAAKJ,CAAAA,QAAAA,EAAUI,MAAUH,IAAAA,MAAAA,CAAO,gBAAA,CAAA;AACxCF,MAAAA,OAAAA;MACAM,OAAS,EAAA;QACP,GAAGrB,YAAAA;AACH,QAAA,GAAG,KAAKgB,QAAUK,EAAAA;AACpB;KACF,CAAA;AACF;AACF","file":"client.js","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["client.ts"],"names":["OpenAIClient","BackendClient","create","extraHeaders","parseEnv","z","preprocess","value","Object","fromEntries","String","split","filter","pair","includes","map","record","string","baseURL","settings","getEnv","compatibility","createOpenAI","apiKey","headers"],"mappings":";;;;;;;AAuBO,MAAMA,qBAAqBC,aAAAA,CAAAA;EAvBlC;;;EAwBYC,MAAyB,GAAA;AACjC,IAAA,MAAMC,eAAeC,QACnB,CAAA,oBAAA,EACAC,CAAEC,CAAAA,UAAAA,CAAW,CAACC,KAAAA,KAAAA;AACZ,MAAOC,OAAAA,MAAAA,CAAOC,WACZC,CAAAA,MAAAA,CAAOH,KAAS,IAAA,EAAA,EACbI,KAAM,CAAA,GAAA,CACNC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,QAAS,CAAA,GAAA,CAAA,CAAA,CAC/BC,GAAI,CAAA,CAACF,SAASA,IAAKF,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAA,CAAA;AAEhC,KAAA,EAAGN,EAAEW,MAAOX,CAAAA,CAAAA,CAAEY,MAAM,EAAA,CAAA,CAAA,CAAA;AAGtB,IAAA,MAAMC,OAAU,GAAA,IAAA,CAAKC,QAAUD,EAAAA,OAAAA,IAAWE,OAAO,qBAAA,CAAA;AACjD,IAAA,IAAIC,aACF,GAAA,IAAA,CAAKF,QAAUE,EAAAA,aAAAA,IAAiBD,OAAO,2BAAA,CAAA;AACzC,IAAIF,IAAAA,OAAAA,IAAW,CAACG,aAAe,EAAA;AAC7BA,MAAgB,aAAA,GAAA,YAAA;KACP,MAAA,IAAA,CAACH,OAAW,IAAA,CAACG,aAAe,EAAA;AACrCA,MAAgB,aAAA,GAAA,QAAA;AAClB;AAEA,IAAA,OAAOC,YAAa,CAAA;AAClB,MAAA,GAAG,IAAKH,CAAAA,QAAAA;AACRE,MAAAA,aAAAA;AACAE,MAAAA,MAAAA,EAAQ,IAAKJ,CAAAA,QAAAA,EAAUI,MAAUH,IAAAA,MAAAA,CAAO,gBAAA,CAAA;AACxCF,MAAAA,OAAAA;MACAM,OAAS,EAAA;QACP,GAAGrB,YAAAA;AACH,QAAA,GAAG,KAAKgB,QAAUK,EAAAA;AACpB;KACF,CAAA;AACF;AACF","file":"client.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 { createOpenAI, OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { getEnv, parseEnv } from \"@/internals/env.js\";\nimport { z } from \"zod\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport type OpenAIClientSettings = OpenAIProviderSettings;\n\nexport class OpenAIClient extends BackendClient<OpenAIClientSettings, OpenAIProvider> {\n protected create(): OpenAIProvider {\n const extraHeaders = parseEnv(\n \"OPENAI_API_HEADERS\",\n z.preprocess((value) => {\n return Object.fromEntries(\n String(value || \"\")\n .split(\",\")\n .filter((pair) => pair.includes(\"=\"))\n .map((pair) => pair.split(\"=\")),\n );\n }, z.record(z.string())),\n );\n\n const baseURL = this.settings?.baseURL || getEnv(\"OPENAI_API_ENDPOINT\");\n let compatibility: string | undefined =\n this.settings?.compatibility || getEnv(\"OPENAI_COMPATIBILITY_MODE\");\n if (baseURL && !compatibility) {\n compatibility = \"compatible\";\n } else if (!baseURL && !compatibility) {\n compatibility = \"strict\";\n }\n\n return createOpenAI({\n ...this.settings,\n compatibility: compatibility as \"strict\" | \"compatible\" | undefined,\n apiKey: this.settings?.apiKey || getEnv(\"OPENAI_API_KEY\"),\n baseURL,\n headers: {\n ...extraHeaders,\n ...this.settings?.headers,\n },\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["embedding.ts"],"names":["OpenAIEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","embedding"],"mappings":";;;;;;;;AAyBO,MAAMA,6BAA6BC,kCAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,eAAO,wBAA0B,EAAA,wBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,wBAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.cjs","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["embedding.ts"],"names":["OpenAIEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","embedding"],"mappings":";;;;;;;;AAyBO,MAAMA,6BAA6BC,kCAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,eAAO,wBAA0B,EAAA,wBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,wBAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OpenAIClient } from \"@/adapters/openai/backend/client.js\";\nimport { OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"embedding\"]>;\nexport type OpenAIEmbeddingModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIEmbeddingModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OpenAIEmbeddingModelId = getEnv(\"OPENAI_EMBEDDING_MODEL\", \"text-embedding-3-small\"),\n settings: OpenAIEmbeddingModelSettings = {},\n client?: OpenAIProviderSettings | OpenAIClient,\n ) {\n const model = OpenAIClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
|
|
@@ -7,15 +7,26 @@ import '../../../internals/types.cjs';
|
|
|
7
7
|
import '../../../internals/helpers/guards.cjs';
|
|
8
8
|
import '../../../backend/embedding.cjs';
|
|
9
9
|
import '../../../context.cjs';
|
|
10
|
-
import '../../../emitter-
|
|
10
|
+
import '../../../emitter-D5Mu0EEH.cjs';
|
|
11
11
|
import '../../../internals/helpers/promise.cjs';
|
|
12
12
|
import '../../../errors.cjs';
|
|
13
|
-
import '../../../
|
|
14
|
-
import '../../../backend/
|
|
13
|
+
import '../../../chat-DvMzAHj6.cjs';
|
|
14
|
+
import '../../../backend/message.cjs';
|
|
15
15
|
import 'ai';
|
|
16
|
+
import 'promise-based-task';
|
|
17
|
+
import '../../../cache/base.cjs';
|
|
18
|
+
import '../../../backend/constants.cjs';
|
|
19
|
+
import '../../../tools/base.cjs';
|
|
20
|
+
import 'ajv';
|
|
21
|
+
import '../../../internals/helpers/schema.cjs';
|
|
22
|
+
import 'zod';
|
|
23
|
+
import 'zod-to-json-schema';
|
|
24
|
+
import '../../../template.cjs';
|
|
25
|
+
import '../../../logger/logger.cjs';
|
|
26
|
+
import 'pino';
|
|
16
27
|
|
|
17
28
|
/**
|
|
18
|
-
* Copyright 2025
|
|
29
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
19
30
|
*
|
|
20
31
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
21
32
|
* you may not use this file except in compliance with the License.
|
|
@@ -7,15 +7,26 @@ import '../../../internals/types.js';
|
|
|
7
7
|
import '../../../internals/helpers/guards.js';
|
|
8
8
|
import '../../../backend/embedding.js';
|
|
9
9
|
import '../../../context.js';
|
|
10
|
-
import '../../../emitter-
|
|
10
|
+
import '../../../emitter-C3dO-s2P.js';
|
|
11
11
|
import '../../../internals/helpers/promise.js';
|
|
12
12
|
import '../../../errors.js';
|
|
13
|
-
import '../../../
|
|
14
|
-
import '../../../backend/
|
|
13
|
+
import '../../../chat-BdN8hGWn.js';
|
|
14
|
+
import '../../../backend/message.js';
|
|
15
15
|
import 'ai';
|
|
16
|
+
import 'promise-based-task';
|
|
17
|
+
import '../../../cache/base.js';
|
|
18
|
+
import '../../../backend/constants.js';
|
|
19
|
+
import '../../../tools/base.js';
|
|
20
|
+
import 'ajv';
|
|
21
|
+
import '../../../internals/helpers/schema.js';
|
|
22
|
+
import 'zod';
|
|
23
|
+
import 'zod-to-json-schema';
|
|
24
|
+
import '../../../template.js';
|
|
25
|
+
import '../../../logger/logger.js';
|
|
26
|
+
import 'pino';
|
|
16
27
|
|
|
17
28
|
/**
|
|
18
|
-
* Copyright 2025
|
|
29
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
19
30
|
*
|
|
20
31
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
21
32
|
* you may not use this file except in compliance with the License.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["embedding.ts"],"names":["OpenAIEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","embedding"],"mappings":";;;;;;AAyBO,MAAMA,6BAA6BC,oBAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,OAAO,wBAA0B,EAAA,wBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.js","sourcesContent":["/**\n * Copyright 2025
|
|
1
|
+
{"version":3,"sources":["embedding.ts"],"names":["OpenAIEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","embedding"],"mappings":";;;;;;AAyBO,MAAMA,6BAA6BC,oBAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,OAAO,wBAA0B,EAAA,wBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OpenAIClient } from \"@/adapters/openai/backend/client.js\";\nimport { OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"embedding\"]>;\nexport type OpenAIEmbeddingModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIEmbeddingModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OpenAIEmbeddingModelId = getEnv(\"OPENAI_EMBEDDING_MODEL\", \"text-embedding-3-small\"),\n settings: OpenAIEmbeddingModelSettings = {},\n client?: OpenAIProviderSettings | OpenAIClient,\n ) {\n const model = OpenAIClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ var errors_cjs = require('../../../errors.cjs');
|
|
|
8
8
|
var remeda = require('remeda');
|
|
9
9
|
var errors_cjs$1 = require('../../../backend/errors.cjs');
|
|
10
10
|
var zod = require('zod');
|
|
11
|
+
var base_cjs = require('../../../tools/base.cjs');
|
|
11
12
|
|
|
12
13
|
var __defProp = Object.defineProperty;
|
|
13
14
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
@@ -39,23 +40,38 @@ class VercelChatModel extends chat_cjs.ChatModel {
|
|
|
39
40
|
const provider = this.model.provider.split(".")[0].split("-")[0];
|
|
40
41
|
return remeda.toCamelCase(provider);
|
|
41
42
|
}
|
|
42
|
-
async _create(input,
|
|
43
|
+
async _create(input, run) {
|
|
44
|
+
const responseFormat = input.responseFormat;
|
|
45
|
+
if (responseFormat && (responseFormat instanceof zod.ZodSchema || responseFormat.schema)) {
|
|
46
|
+
const { output } = await this._createStructure({
|
|
47
|
+
...input,
|
|
48
|
+
schema: responseFormat
|
|
49
|
+
}, run);
|
|
50
|
+
return output;
|
|
51
|
+
}
|
|
43
52
|
const { finishReason, usage, response: { messages } } = await ai.generateText(await this.transformInput(input));
|
|
44
53
|
return new chat_cjs.ChatModelOutput(this.transformMessages(messages), usage, finishReason);
|
|
45
54
|
}
|
|
46
55
|
async _createStructure({ schema, ...input }, run) {
|
|
47
|
-
const inputSchema = schema._input || schema;
|
|
48
56
|
const response = await ai.generateObject({
|
|
49
57
|
temperature: 0,
|
|
50
58
|
...await this.transformInput(input),
|
|
51
|
-
schema,
|
|
52
59
|
abortSignal: run.signal,
|
|
53
60
|
model: this.model,
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
...schema instanceof zod.ZodSchema ? {
|
|
62
|
+
schema,
|
|
63
|
+
output: (schema._input || schema) instanceof zod.ZodArray ? "array" : (schema._input || schema) instanceof zod.ZodEnum ? "enum" : "object"
|
|
64
|
+
} : {
|
|
65
|
+
schema: schema.schema ? ai.jsonSchema(schema.schema) : zod.z.any(),
|
|
66
|
+
schemaName: schema.name,
|
|
67
|
+
schemaDescription: schema.description
|
|
68
|
+
}
|
|
56
69
|
});
|
|
57
70
|
return {
|
|
58
|
-
object: response.object
|
|
71
|
+
object: response.object,
|
|
72
|
+
output: new chat_cjs.ChatModelOutput([
|
|
73
|
+
new message_cjs.AssistantMessage(JSON.stringify(response.object, null, 2))
|
|
74
|
+
], response.usage, response.finishReason)
|
|
59
75
|
};
|
|
60
76
|
}
|
|
61
77
|
async *_createStream(input, run) {
|
|
@@ -135,15 +151,43 @@ class VercelChatModel extends chat_cjs.ChatModel {
|
|
|
135
151
|
role: "tool",
|
|
136
152
|
content: msg.content
|
|
137
153
|
};
|
|
154
|
+
} else if (msg instanceof message_cjs.UserMessage) {
|
|
155
|
+
return {
|
|
156
|
+
role: msg.role,
|
|
157
|
+
content: msg.content
|
|
158
|
+
};
|
|
159
|
+
} else if (msg instanceof message_cjs.SystemMessage) {
|
|
160
|
+
return {
|
|
161
|
+
role: "user",
|
|
162
|
+
content: msg.content
|
|
163
|
+
};
|
|
138
164
|
}
|
|
139
165
|
return {
|
|
140
166
|
role: msg.role,
|
|
141
|
-
content: msg.
|
|
167
|
+
content: msg.content
|
|
142
168
|
};
|
|
143
169
|
});
|
|
170
|
+
let toolChoice;
|
|
171
|
+
if (input.toolChoice && input.toolChoice instanceof base_cjs.Tool) {
|
|
172
|
+
if (this.toolChoiceSupport.includes("single")) {
|
|
173
|
+
toolChoice = {
|
|
174
|
+
type: "tool",
|
|
175
|
+
toolName: input.toolChoice.name
|
|
176
|
+
};
|
|
177
|
+
} else {
|
|
178
|
+
this.logger.warn(`The single tool choice is not supported.`);
|
|
179
|
+
}
|
|
180
|
+
} else if (input.toolChoice) {
|
|
181
|
+
if (this.toolChoiceSupport.includes(input.toolChoice)) {
|
|
182
|
+
toolChoice = input.toolChoice;
|
|
183
|
+
} else {
|
|
184
|
+
this.logger.warn(`The following tool choice value '${input.toolChoice}' is not supported.`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
144
187
|
return {
|
|
145
188
|
...this.parameters,
|
|
146
189
|
...input,
|
|
190
|
+
toolChoice,
|
|
147
191
|
model: this.model,
|
|
148
192
|
tools: remeda.mapToObj(tools, ({ name, ...tool }) => [
|
|
149
193
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","inputSchema","_input","generateObject","temperature","abortSignal","signal","output","ZodArray","ZodEnum","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","text","mapToObj","flatMap","providerOptions","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","Object","assign"],"mappings":"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","file":"chat.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 ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n TextPart,\n ToolCallPart,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\nimport { ZodArray, ZodEnum } from \"zod\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const inputSchema = schema._input || schema;\n\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n // @ts-expect-error\n output:\n inputSchema instanceof ZodArray\n ? \"array\"\n : inputSchema instanceof ZodEnum\n ? \"enum\"\n : \"object\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n }\n return { role: msg.role as \"user\" | \"system\", content: msg.text };\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.providerOptions);\n }\n return new AssistantMessage(\n msg.content as TextPart | ToolCallPart | string,\n msg.providerOptions,\n );\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","run","responseFormat","ZodSchema","schema","output","_createStructure","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","generateObject","temperature","abortSignal","signal","_input","ZodArray","ZodEnum","jsonSchema","z","any","schemaName","name","schemaDescription","description","object","AssistantMessage","JSON","stringify","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","parameters","getInputJsonSchema","msg","role","content","UserMessage","SystemMessage","toolChoice","Tool","toolChoiceSupport","includes","logger","warn","mapToObj","flatMap","providerOptions","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","Object","assign"],"mappings":"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","file":"chat.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 ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n TextPart,\n ToolCallPart,\n ToolChoice,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport {\n AssistantMessage,\n Message,\n SystemMessage,\n ToolMessage,\n UserMessage,\n} from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\nimport { z, ZodArray, ZodEnum, ZodSchema } from \"zod\";\nimport { Tool } from \"@/tools/base.js\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, run: GetRunContext<this>) {\n const responseFormat = input.responseFormat;\n if (responseFormat && (responseFormat instanceof ZodSchema || responseFormat.schema)) {\n const { output } = await this._createStructure(\n {\n ...input,\n schema: responseFormat,\n },\n run,\n );\n return output;\n }\n\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const response = await generateObject<T>({\n temperature: 0,\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n model: this.model,\n ...(schema instanceof ZodSchema\n ? {\n schema,\n output: ((schema._input || schema) instanceof ZodArray\n ? \"array\"\n : (schema._input || schema) instanceof ZodEnum\n ? \"enum\"\n : \"object\") as any,\n }\n : {\n schema: schema.schema ? jsonSchema<T>(schema.schema) : z.any(),\n schemaName: schema.name,\n schemaDescription: schema.description,\n }),\n });\n\n return {\n object: response.object,\n output: new ChatModelOutput(\n [new AssistantMessage(JSON.stringify(response.object, null, 2))],\n response.usage,\n response.finishReason,\n ),\n };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n } else if (msg instanceof UserMessage) {\n return { role: msg.role, content: msg.content };\n } else if (msg instanceof SystemMessage) {\n return { role: \"user\", content: msg.content };\n }\n return { role: msg.role, content: msg.content } as CoreMessage;\n });\n\n let toolChoice: ToolChoice<Record<string, any>> | undefined;\n if (input.toolChoice && input.toolChoice instanceof Tool) {\n if (this.toolChoiceSupport.includes(\"single\")) {\n toolChoice = {\n type: \"tool\",\n toolName: input.toolChoice.name,\n };\n } else {\n this.logger.warn(`The single tool choice is not supported.`);\n }\n } else if (input.toolChoice) {\n if (this.toolChoiceSupport.includes(input.toolChoice)) {\n toolChoice = input.toolChoice;\n } else {\n this.logger.warn(`The following tool choice value '${input.toolChoice}' is not supported.`);\n }\n }\n\n return {\n ...this.parameters,\n ...input,\n toolChoice,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.providerOptions);\n }\n return new AssistantMessage(\n msg.content as TextPart | ToolCallPart | string,\n msg.providerOptions,\n );\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Logger } from '../../../logger/logger.cjs';
|
|
2
|
+
import { m as ChatModel, g as ChatModelEvents, d as ChatModelInput, n as ChatModelOutput, a as ChatModelObjectInput, b as ChatModelObjectOutput, i as ChatModelCache, C as ChatModelParameters, l as ChatModelToolChoiceSupport } from '../../../chat-DvMzAHj6.cjs';
|
|
2
3
|
import { LanguageModelV1, generateText, CoreAssistantMessage, CoreToolMessage } from 'ai';
|
|
3
|
-
import { E as Emitter } from '../../../emitter-
|
|
4
|
+
import { E as Emitter } from '../../../emitter-D5Mu0EEH.cjs';
|
|
4
5
|
import { Message } from '../../../backend/message.cjs';
|
|
5
6
|
import { GetRunContext } from '../../../context.cjs';
|
|
6
|
-
import '
|
|
7
|
+
import 'pino';
|
|
8
|
+
import '../../../errors.cjs';
|
|
7
9
|
import '../../../internals/types.cjs';
|
|
8
10
|
import '../../../internals/helpers/guards.cjs';
|
|
9
|
-
import '../../../
|
|
11
|
+
import '../../../internals/serializable.cjs';
|
|
10
12
|
import 'promise-based-task';
|
|
11
13
|
import '../../../cache/base.cjs';
|
|
12
|
-
import '../../../backend/utils.cjs';
|
|
13
14
|
import '../../../backend/constants.cjs';
|
|
14
15
|
import '../../../tools/base.cjs';
|
|
15
16
|
import 'ajv';
|
|
@@ -17,7 +18,7 @@ import '../../../internals/helpers/schema.cjs';
|
|
|
17
18
|
import 'zod';
|
|
18
19
|
import 'zod-to-json-schema';
|
|
19
20
|
import '../../../internals/helpers/promise.cjs';
|
|
20
|
-
import '
|
|
21
|
+
import '../../../template.cjs';
|
|
21
22
|
|
|
22
23
|
declare abstract class VercelChatModel<M extends LanguageModelV1 = LanguageModelV1> extends ChatModel {
|
|
23
24
|
private readonly model;
|
|
@@ -26,7 +27,7 @@ declare abstract class VercelChatModel<M extends LanguageModelV1 = LanguageModel
|
|
|
26
27
|
constructor(model: M);
|
|
27
28
|
get modelId(): string;
|
|
28
29
|
get providerId(): string;
|
|
29
|
-
protected _create(input: ChatModelInput,
|
|
30
|
+
protected _create(input: ChatModelInput, run: GetRunContext<this>): Promise<ChatModelOutput>;
|
|
30
31
|
protected _createStructure<T>({ schema, ...input }: ChatModelObjectInput<T>, run: GetRunContext<this>): Promise<ChatModelObjectOutput<T>>;
|
|
31
32
|
_createStream(input: ChatModelInput, run: GetRunContext<this>): AsyncGenerator<ChatModelOutput, void, unknown>;
|
|
32
33
|
protected transformInput(input: ChatModelInput): Promise<Parameters<typeof generateText<Record<string, any>>>[0]>;
|
|
@@ -38,6 +39,10 @@ declare abstract class VercelChatModel<M extends LanguageModelV1 = LanguageModel
|
|
|
38
39
|
cache: ChatModelCache;
|
|
39
40
|
emitter: Emitter<ChatModelEvents>;
|
|
40
41
|
parameters: ChatModelParameters;
|
|
42
|
+
logger: Logger;
|
|
43
|
+
toolChoiceSupport: ChatModelToolChoiceSupport[];
|
|
44
|
+
toolCallFallbackViaResponseFormat: boolean;
|
|
45
|
+
modelSupportsToolCalling: boolean;
|
|
41
46
|
};
|
|
42
47
|
loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>): Promise<void>;
|
|
43
48
|
}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Logger } from '../../../logger/logger.js';
|
|
2
|
+
import { m as ChatModel, g as ChatModelEvents, d as ChatModelInput, n as ChatModelOutput, a as ChatModelObjectInput, b as ChatModelObjectOutput, i as ChatModelCache, C as ChatModelParameters, l as ChatModelToolChoiceSupport } from '../../../chat-BdN8hGWn.js';
|
|
2
3
|
import { LanguageModelV1, generateText, CoreAssistantMessage, CoreToolMessage } from 'ai';
|
|
3
|
-
import { E as Emitter } from '../../../emitter-
|
|
4
|
+
import { E as Emitter } from '../../../emitter-C3dO-s2P.js';
|
|
4
5
|
import { Message } from '../../../backend/message.js';
|
|
5
6
|
import { GetRunContext } from '../../../context.js';
|
|
6
|
-
import '
|
|
7
|
+
import 'pino';
|
|
8
|
+
import '../../../errors.js';
|
|
7
9
|
import '../../../internals/types.js';
|
|
8
10
|
import '../../../internals/helpers/guards.js';
|
|
9
|
-
import '../../../
|
|
11
|
+
import '../../../internals/serializable.js';
|
|
10
12
|
import 'promise-based-task';
|
|
11
13
|
import '../../../cache/base.js';
|
|
12
|
-
import '../../../backend/utils.js';
|
|
13
14
|
import '../../../backend/constants.js';
|
|
14
15
|
import '../../../tools/base.js';
|
|
15
16
|
import 'ajv';
|
|
@@ -17,7 +18,7 @@ import '../../../internals/helpers/schema.js';
|
|
|
17
18
|
import 'zod';
|
|
18
19
|
import 'zod-to-json-schema';
|
|
19
20
|
import '../../../internals/helpers/promise.js';
|
|
20
|
-
import '
|
|
21
|
+
import '../../../template.js';
|
|
21
22
|
|
|
22
23
|
declare abstract class VercelChatModel<M extends LanguageModelV1 = LanguageModelV1> extends ChatModel {
|
|
23
24
|
private readonly model;
|
|
@@ -26,7 +27,7 @@ declare abstract class VercelChatModel<M extends LanguageModelV1 = LanguageModel
|
|
|
26
27
|
constructor(model: M);
|
|
27
28
|
get modelId(): string;
|
|
28
29
|
get providerId(): string;
|
|
29
|
-
protected _create(input: ChatModelInput,
|
|
30
|
+
protected _create(input: ChatModelInput, run: GetRunContext<this>): Promise<ChatModelOutput>;
|
|
30
31
|
protected _createStructure<T>({ schema, ...input }: ChatModelObjectInput<T>, run: GetRunContext<this>): Promise<ChatModelObjectOutput<T>>;
|
|
31
32
|
_createStream(input: ChatModelInput, run: GetRunContext<this>): AsyncGenerator<ChatModelOutput, void, unknown>;
|
|
32
33
|
protected transformInput(input: ChatModelInput): Promise<Parameters<typeof generateText<Record<string, any>>>[0]>;
|
|
@@ -38,6 +39,10 @@ declare abstract class VercelChatModel<M extends LanguageModelV1 = LanguageModel
|
|
|
38
39
|
cache: ChatModelCache;
|
|
39
40
|
emitter: Emitter<ChatModelEvents>;
|
|
40
41
|
parameters: ChatModelParameters;
|
|
42
|
+
logger: Logger;
|
|
43
|
+
toolChoiceSupport: ChatModelToolChoiceSupport[];
|
|
44
|
+
toolCallFallbackViaResponseFormat: boolean;
|
|
45
|
+
modelSupportsToolCalling: boolean;
|
|
41
46
|
};
|
|
42
47
|
loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>): Promise<void>;
|
|
43
48
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ChatModel, ChatModelOutput } from '../../../backend/chat.js';
|
|
2
|
-
import { generateText, generateObject,
|
|
2
|
+
import { generateText, generateObject, jsonSchema, streamText } from 'ai';
|
|
3
3
|
import { Emitter } from '../../../emitter/emitter.js';
|
|
4
|
-
import { ToolMessage,
|
|
4
|
+
import { AssistantMessage, ToolMessage, UserMessage, SystemMessage } from '../../../backend/message.js';
|
|
5
5
|
import { ValueError } from '../../../errors.js';
|
|
6
6
|
import { toCamelCase, isEmpty, mapToObj } from 'remeda';
|
|
7
7
|
import { ChatModelError } from '../../../backend/errors.js';
|
|
8
|
-
import { ZodArray, ZodEnum } from 'zod';
|
|
8
|
+
import { ZodSchema, z, ZodArray, ZodEnum } from 'zod';
|
|
9
|
+
import { Tool } from '../../../tools/base.js';
|
|
9
10
|
|
|
10
11
|
var __defProp = Object.defineProperty;
|
|
11
12
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
@@ -37,23 +38,38 @@ class VercelChatModel extends ChatModel {
|
|
|
37
38
|
const provider = this.model.provider.split(".")[0].split("-")[0];
|
|
38
39
|
return toCamelCase(provider);
|
|
39
40
|
}
|
|
40
|
-
async _create(input,
|
|
41
|
+
async _create(input, run) {
|
|
42
|
+
const responseFormat = input.responseFormat;
|
|
43
|
+
if (responseFormat && (responseFormat instanceof ZodSchema || responseFormat.schema)) {
|
|
44
|
+
const { output } = await this._createStructure({
|
|
45
|
+
...input,
|
|
46
|
+
schema: responseFormat
|
|
47
|
+
}, run);
|
|
48
|
+
return output;
|
|
49
|
+
}
|
|
41
50
|
const { finishReason, usage, response: { messages } } = await generateText(await this.transformInput(input));
|
|
42
51
|
return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);
|
|
43
52
|
}
|
|
44
53
|
async _createStructure({ schema, ...input }, run) {
|
|
45
|
-
const inputSchema = schema._input || schema;
|
|
46
54
|
const response = await generateObject({
|
|
47
55
|
temperature: 0,
|
|
48
56
|
...await this.transformInput(input),
|
|
49
|
-
schema,
|
|
50
57
|
abortSignal: run.signal,
|
|
51
58
|
model: this.model,
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
...schema instanceof ZodSchema ? {
|
|
60
|
+
schema,
|
|
61
|
+
output: (schema._input || schema) instanceof ZodArray ? "array" : (schema._input || schema) instanceof ZodEnum ? "enum" : "object"
|
|
62
|
+
} : {
|
|
63
|
+
schema: schema.schema ? jsonSchema(schema.schema) : z.any(),
|
|
64
|
+
schemaName: schema.name,
|
|
65
|
+
schemaDescription: schema.description
|
|
66
|
+
}
|
|
54
67
|
});
|
|
55
68
|
return {
|
|
56
|
-
object: response.object
|
|
69
|
+
object: response.object,
|
|
70
|
+
output: new ChatModelOutput([
|
|
71
|
+
new AssistantMessage(JSON.stringify(response.object, null, 2))
|
|
72
|
+
], response.usage, response.finishReason)
|
|
57
73
|
};
|
|
58
74
|
}
|
|
59
75
|
async *_createStream(input, run) {
|
|
@@ -133,15 +149,43 @@ class VercelChatModel extends ChatModel {
|
|
|
133
149
|
role: "tool",
|
|
134
150
|
content: msg.content
|
|
135
151
|
};
|
|
152
|
+
} else if (msg instanceof UserMessage) {
|
|
153
|
+
return {
|
|
154
|
+
role: msg.role,
|
|
155
|
+
content: msg.content
|
|
156
|
+
};
|
|
157
|
+
} else if (msg instanceof SystemMessage) {
|
|
158
|
+
return {
|
|
159
|
+
role: "user",
|
|
160
|
+
content: msg.content
|
|
161
|
+
};
|
|
136
162
|
}
|
|
137
163
|
return {
|
|
138
164
|
role: msg.role,
|
|
139
|
-
content: msg.
|
|
165
|
+
content: msg.content
|
|
140
166
|
};
|
|
141
167
|
});
|
|
168
|
+
let toolChoice;
|
|
169
|
+
if (input.toolChoice && input.toolChoice instanceof Tool) {
|
|
170
|
+
if (this.toolChoiceSupport.includes("single")) {
|
|
171
|
+
toolChoice = {
|
|
172
|
+
type: "tool",
|
|
173
|
+
toolName: input.toolChoice.name
|
|
174
|
+
};
|
|
175
|
+
} else {
|
|
176
|
+
this.logger.warn(`The single tool choice is not supported.`);
|
|
177
|
+
}
|
|
178
|
+
} else if (input.toolChoice) {
|
|
179
|
+
if (this.toolChoiceSupport.includes(input.toolChoice)) {
|
|
180
|
+
toolChoice = input.toolChoice;
|
|
181
|
+
} else {
|
|
182
|
+
this.logger.warn(`The following tool choice value '${input.toolChoice}' is not supported.`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
142
185
|
return {
|
|
143
186
|
...this.parameters,
|
|
144
187
|
...input,
|
|
188
|
+
toolChoice,
|
|
145
189
|
model: this.model,
|
|
146
190
|
tools: mapToObj(tools, ({ name, ...tool }) => [
|
|
147
191
|
name,
|