beeai-framework 0.1.21 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/a2a/agents/agent.d.cts +6 -10
- package/dist/adapters/a2a/agents/agent.d.ts +6 -10
- package/dist/adapters/a2a/agents/events.d.cts +1 -1
- package/dist/adapters/a2a/agents/events.d.ts +1 -1
- package/dist/adapters/a2a/agents/types.d.cts +2 -2
- package/dist/adapters/a2a/agents/types.d.ts +2 -2
- package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
- package/dist/adapters/a2a/serve/server.d.cts +2 -2
- package/dist/adapters/a2a/serve/server.d.ts +2 -2
- package/dist/adapters/acp/agents/agent.d.cts +6 -10
- package/dist/adapters/acp/agents/agent.d.ts +6 -10
- package/dist/adapters/acp/agents/events.d.cts +1 -1
- package/dist/adapters/acp/agents/events.d.ts +1 -1
- package/dist/adapters/agentstack/agents/agent.d.cts +8 -6
- package/dist/adapters/agentstack/agents/agent.d.ts +8 -6
- package/dist/adapters/agentstack/agents/events.d.cts +1 -1
- package/dist/adapters/agentstack/agents/events.d.ts +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
- package/dist/adapters/anthropic/backend/chat.d.cts +2 -2
- package/dist/adapters/anthropic/backend/chat.d.ts +2 -2
- package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
- package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
- package/dist/adapters/azure-openai/backend/chat.d.cts +2 -2
- package/dist/adapters/azure-openai/backend/chat.d.ts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/dummy/backend/chat.d.cts +2 -2
- package/dist/adapters/dummy/backend/chat.d.ts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
- package/dist/adapters/google-vertex/backend/chat.d.cts +2 -2
- package/dist/adapters/google-vertex/backend/chat.d.ts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
- package/dist/adapters/groq/backend/chat.d.cts +2 -2
- package/dist/adapters/groq/backend/chat.d.ts +2 -2
- package/dist/adapters/groq/backend/embedding.d.cts +2 -2
- package/dist/adapters/groq/backend/embedding.d.ts +2 -2
- package/dist/adapters/langchain/backend/chat.d.cts +2 -2
- package/dist/adapters/langchain/backend/chat.d.ts +2 -2
- package/dist/adapters/langchain/backend/embedding.d.cts +2 -2
- package/dist/adapters/langchain/backend/embedding.d.ts +2 -2
- package/dist/adapters/langchain/tools.d.cts +1 -1
- package/dist/adapters/langchain/tools.d.ts +1 -1
- package/dist/adapters/ollama/backend/chat.cjs +1 -2
- package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
- package/dist/adapters/ollama/backend/chat.d.cts +2 -3
- package/dist/adapters/ollama/backend/chat.d.ts +2 -3
- package/dist/adapters/ollama/backend/chat.js +1 -2
- package/dist/adapters/ollama/backend/chat.js.map +1 -1
- package/dist/adapters/ollama/backend/embedding.d.cts +2 -2
- package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
- package/dist/adapters/openai/backend/chat.d.cts +2 -2
- package/dist/adapters/openai/backend/chat.d.ts +2 -2
- package/dist/adapters/openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/vercel/backend/chat.cjs +77 -17
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.d.cts +2 -2
- package/dist/adapters/vercel/backend/chat.d.ts +2 -2
- package/dist/adapters/vercel/backend/chat.js +77 -17
- package/dist/adapters/vercel/backend/chat.js.map +1 -1
- package/dist/adapters/vercel/backend/embedding.d.cts +2 -2
- package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
- package/dist/adapters/vercel/backend/utils.cjs +32 -0
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +6 -4
- package/dist/adapters/vercel/backend/utils.d.ts +6 -4
- package/dist/adapters/vercel/backend/utils.js +31 -1
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.cjs +7 -8
- package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +4 -4
- package/dist/adapters/watsonx/backend/chat.d.ts +4 -4
- package/dist/adapters/watsonx/backend/chat.js +7 -8
- package/dist/adapters/watsonx/backend/chat.js.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
- package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
- package/dist/adapters/xai/backend/chat.d.cts +2 -2
- package/dist/adapters/xai/backend/chat.d.ts +2 -2
- package/dist/{agent-DvvVGvLr.d.cts → agent-BVuc9Nfn.d.cts} +5 -4
- package/dist/{agent-CHebzsQB.d.ts → agent-Cuy8Q4gw.d.ts} +5 -4
- package/dist/agents/base.cjs +5 -2
- 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 +5 -2
- package/dist/agents/base.js.map +1 -1
- package/dist/agents/experimental/replan/agent.d.cts +3 -3
- package/dist/agents/experimental/replan/agent.d.ts +3 -3
- package/dist/agents/experimental/replan/prompts.d.cts +1 -1
- package/dist/agents/experimental/replan/prompts.d.ts +1 -1
- package/dist/agents/experimental/streamlit/agent.d.cts +8 -12
- package/dist/agents/experimental/streamlit/agent.d.ts +8 -12
- package/dist/agents/react/agent.d.cts +4 -4
- package/dist/agents/react/agent.d.ts +4 -4
- package/dist/agents/react/runners/base.d.cts +4 -4
- package/dist/agents/react/runners/base.d.ts +4 -4
- package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
- package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
- package/dist/agents/react/runners/default/runner.d.cts +5 -5
- package/dist/agents/react/runners/default/runner.d.ts +5 -5
- package/dist/agents/react/runners/granite/runner.d.cts +4 -4
- package/dist/agents/react/runners/granite/runner.d.ts +4 -4
- package/dist/agents/react/types.d.cts +2 -2
- package/dist/agents/react/types.d.ts +2 -2
- package/dist/agents/requirement/agent.cjs +162 -0
- package/dist/agents/requirement/agent.cjs.map +1 -0
- package/dist/agents/requirement/agent.d.cts +29 -0
- package/dist/agents/requirement/agent.d.ts +29 -0
- package/dist/agents/requirement/agent.js +160 -0
- package/dist/agents/requirement/agent.js.map +1 -0
- package/dist/agents/requirement/prompts.cjs +95 -0
- package/dist/agents/requirement/prompts.cjs.map +1 -0
- package/dist/agents/requirement/prompts.d.cts +107 -0
- package/dist/agents/requirement/prompts.d.ts +107 -0
- package/dist/agents/requirement/prompts.js +90 -0
- package/dist/agents/requirement/prompts.js.map +1 -0
- package/dist/agents/requirement/requirements/conditional.cjs +190 -0
- package/dist/agents/requirement/requirements/conditional.cjs.map +1 -0
- package/dist/agents/requirement/requirements/conditional.d.cts +71 -0
- package/dist/agents/requirement/requirements/conditional.d.ts +71 -0
- package/dist/agents/requirement/requirements/conditional.js +188 -0
- package/dist/agents/requirement/requirements/conditional.js.map +1 -0
- package/dist/agents/requirement/requirements/requirement.cjs +107 -0
- package/dist/agents/requirement/requirements/requirement.cjs.map +1 -0
- package/dist/agents/requirement/requirements/requirement.d.cts +59 -0
- package/dist/agents/requirement/requirements/requirement.d.ts +59 -0
- package/dist/agents/requirement/requirements/requirement.js +104 -0
- package/dist/agents/requirement/requirements/requirement.js.map +1 -0
- package/dist/agents/requirement/requirements/utils.cjs +74 -0
- package/dist/agents/requirement/requirements/utils.cjs.map +1 -0
- package/dist/agents/requirement/requirements/utils.d.cts +40 -0
- package/dist/agents/requirement/requirements/utils.d.ts +40 -0
- package/dist/agents/requirement/requirements/utils.js +69 -0
- package/dist/agents/requirement/requirements/utils.js.map +1 -0
- package/dist/agents/requirement/runner.cjs +268 -0
- package/dist/agents/requirement/runner.cjs.map +1 -0
- package/dist/agents/requirement/runner.d.cts +115 -0
- package/dist/agents/requirement/runner.d.ts +115 -0
- package/dist/agents/requirement/runner.js +266 -0
- package/dist/agents/requirement/runner.js.map +1 -0
- package/dist/agents/requirement/types.cjs +40 -0
- package/dist/agents/requirement/types.cjs.map +1 -0
- package/dist/agents/requirement/types.d.cts +24 -0
- package/dist/agents/requirement/types.d.ts +24 -0
- package/dist/agents/requirement/types.js +35 -0
- package/dist/agents/requirement/types.js.map +1 -0
- package/dist/agents/requirement/utils/llm.cjs +202 -0
- package/dist/agents/requirement/utils/llm.cjs.map +1 -0
- package/dist/agents/requirement/utils/llm.d.cts +50 -0
- package/dist/agents/requirement/utils/llm.d.ts +50 -0
- package/dist/agents/requirement/utils/llm.js +199 -0
- package/dist/agents/requirement/utils/llm.js.map +1 -0
- package/dist/agents/requirement/utils/tool.cjs +95 -0
- package/dist/agents/requirement/utils/tool.cjs.map +1 -0
- package/dist/agents/requirement/utils/tool.d.cts +24 -0
- package/dist/agents/requirement/utils/tool.d.ts +24 -0
- package/dist/agents/requirement/utils/tool.js +92 -0
- package/dist/agents/requirement/utils/tool.js.map +1 -0
- package/dist/agents/requirement/utils/toolCallChecker.cjs +61 -0
- package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -0
- package/dist/agents/requirement/utils/toolCallChecker.d.cts +28 -0
- package/dist/agents/requirement/utils/toolCallChecker.d.ts +28 -0
- package/dist/agents/requirement/utils/toolCallChecker.js +59 -0
- package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -0
- package/dist/agents/toolCalling/agent.cjs +4 -1
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.d.cts +11 -12
- package/dist/agents/toolCalling/agent.d.ts +11 -12
- package/dist/agents/toolCalling/agent.js +5 -2
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/agents/toolCalling/types.d.cts +1 -1
- package/dist/agents/toolCalling/types.d.ts +1 -1
- package/dist/agents/types.d.cts +2 -2
- package/dist/agents/types.d.ts +2 -2
- package/dist/backend/backend.d.cts +2 -2
- package/dist/backend/backend.d.ts +2 -2
- package/dist/backend/chat.cjs +122 -4
- package/dist/backend/chat.cjs.map +1 -1
- package/dist/backend/chat.d.cts +3 -3
- package/dist/backend/chat.d.ts +3 -3
- package/dist/backend/chat.js +123 -5
- package/dist/backend/chat.js.map +1 -1
- package/dist/backend/core.d.cts +3 -3
- package/dist/backend/core.d.ts +3 -3
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/message.cjs +20 -13
- package/dist/backend/message.cjs.map +1 -1
- package/dist/backend/message.d.cts +7 -3
- package/dist/backend/message.d.ts +7 -3
- package/dist/backend/message.js +20 -13
- package/dist/backend/message.js.map +1 -1
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/{base-BQgDlcGa.d.ts → base-CyFx7BRL.d.ts} +5 -3
- package/dist/{base-CwcxwybB.d.cts → base-XfWeXQ-S.d.cts} +5 -3
- package/dist/{chat-CRb3vUVg.d.cts → chat-BOb9n7AJ.d.cts} +7 -8
- package/dist/{chat-C0s-o6ll.d.ts → chat-DrqwUgD8.d.ts} +7 -8
- package/dist/context.cjs +22 -5
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +19 -6
- package/dist/context.d.ts +19 -6
- package/dist/context.js +23 -7
- package/dist/context.js.map +1 -1
- package/dist/emitter/emitter.cjs +21 -14
- 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 +21 -14
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/types.d.cts +1 -1
- package/dist/emitter/types.d.ts +1 -1
- package/dist/{emitter-CZFbzlUi.d.ts → emitter-36-9MnvA.d.ts} +4 -3
- package/dist/{emitter-DpqUYjXH.d.cts → emitter-jN55XZZq.d.cts} +4 -3
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/internals/fetcher.d.cts +1 -1
- package/dist/internals/fetcher.d.ts +1 -1
- package/dist/internals/helpers/prototype.cjs +5 -0
- package/dist/internals/helpers/prototype.cjs.map +1 -1
- package/dist/internals/helpers/prototype.d.cts +2 -1
- package/dist/internals/helpers/prototype.d.ts +2 -1
- package/dist/internals/helpers/prototype.js +5 -1
- package/dist/internals/helpers/prototype.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/memory/summarizeMemory.d.cts +2 -2
- package/dist/memory/summarizeMemory.d.ts +2 -2
- package/dist/middleware/streamToolCall.cjs +132 -0
- package/dist/middleware/streamToolCall.cjs.map +1 -0
- package/dist/middleware/streamToolCall.d.cts +94 -0
- package/dist/middleware/streamToolCall.d.ts +94 -0
- package/dist/middleware/streamToolCall.js +130 -0
- package/dist/middleware/streamToolCall.js.map +1 -0
- package/dist/middleware/trajectory.cjs +331 -0
- package/dist/middleware/trajectory.cjs.map +1 -0
- package/dist/middleware/trajectory.d.cts +115 -0
- package/dist/middleware/trajectory.d.ts +115 -0
- package/dist/middleware/trajectory.js +329 -0
- package/dist/middleware/trajectory.js.map +1 -0
- package/dist/parsers/linePrefix.d.cts +1 -1
- package/dist/parsers/linePrefix.d.ts +1 -1
- package/dist/serializer/serializer.cjs +5 -4
- 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 +5 -4
- package/dist/serializer/serializer.js.map +1 -1
- package/dist/serializer/utils.cjs +3 -0
- 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 +3 -0
- package/dist/serializer/utils.js.map +1 -1
- package/dist/{serializer-CQxucveV.d.ts → serializer-53t8gGQa.d.ts} +3 -2
- package/dist/{serializer-BKn50Vnx.d.cts → serializer-c51B2z6d.d.cts} +3 -2
- package/dist/template.cjs +20 -0
- package/dist/template.cjs.map +1 -1
- package/dist/template.d.cts +1 -0
- package/dist/template.d.ts +1 -0
- package/dist/template.js +20 -0
- package/dist/template.js.map +1 -1
- package/dist/tools/arxiv.d.cts +1 -1
- package/dist/tools/arxiv.d.ts +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.d.cts +3 -2
- package/dist/tools/base.d.ts +3 -2
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/calculator.d.cts +1 -1
- package/dist/tools/calculator.d.ts +1 -1
- package/dist/tools/custom.d.cts +2 -2
- package/dist/tools/custom.d.ts +2 -2
- package/dist/tools/database/elasticsearch.d.cts +1 -1
- package/dist/tools/database/elasticsearch.d.ts +1 -1
- package/dist/tools/database/milvus.d.cts +3 -3
- package/dist/tools/database/milvus.d.ts +3 -3
- package/dist/tools/database/qdrant.d.cts +1 -1
- package/dist/tools/database/qdrant.d.ts +1 -1
- package/dist/tools/database/sql.d.cts +1 -1
- package/dist/tools/database/sql.d.ts +1 -1
- package/dist/tools/handoff.cjs +68 -0
- package/dist/tools/handoff.cjs.map +1 -0
- package/dist/tools/handoff.d.cts +47 -0
- package/dist/tools/handoff.d.ts +47 -0
- package/dist/tools/handoff.js +66 -0
- package/dist/tools/handoff.js.map +1 -0
- package/dist/tools/llm.d.cts +2 -2
- package/dist/tools/llm.d.ts +2 -2
- package/dist/tools/mcp.d.cts +1 -1
- package/dist/tools/mcp.d.ts +1 -1
- package/dist/tools/openapi.d.cts +1 -1
- package/dist/tools/openapi.d.ts +1 -1
- package/dist/tools/python/output.d.cts +1 -1
- package/dist/tools/python/output.d.ts +1 -1
- package/dist/tools/python/python.d.cts +2 -2
- package/dist/tools/python/python.d.ts +2 -2
- package/dist/tools/search/base.d.cts +1 -1
- package/dist/tools/search/base.d.ts +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.cts +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.ts +1 -1
- package/dist/tools/search/googleSearch.d.cts +1 -1
- package/dist/tools/search/googleSearch.d.ts +1 -1
- package/dist/tools/search/searXNGSearch.d.cts +1 -1
- package/dist/tools/search/searXNGSearch.d.ts +1 -1
- package/dist/tools/search/wikipedia.d.cts +1 -1
- package/dist/tools/search/wikipedia.d.ts +1 -1
- package/dist/tools/similarity.d.cts +1 -1
- package/dist/tools/similarity.d.ts +1 -1
- package/dist/tools/think.cjs +52 -0
- package/dist/tools/think.cjs.map +1 -0
- package/dist/tools/think.d.cts +47 -0
- package/dist/tools/think.d.ts +47 -0
- package/dist/tools/think.js +50 -0
- package/dist/tools/think.js.map +1 -0
- package/dist/tools/weather/openMeteo.d.cts +1 -1
- package/dist/tools/weather/openMeteo.d.ts +1 -1
- package/dist/tools/web/webCrawler.d.cts +1 -1
- package/dist/tools/web/webCrawler.d.ts +1 -1
- package/dist/types-CJwiMH3u.d.ts +213 -0
- package/dist/types-W0QttuP_.d.cts +213 -0
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/workflows/agent.d.cts +3 -3
- package/dist/workflows/agent.d.ts +3 -3
- package/dist/workflows/workflow.d.cts +1 -1
- package/dist/workflows/workflow.d.ts +1 -1
- package/package.json +11 -11
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Run, GetRunContext } from '../context.js';
|
|
2
2
|
import { Serializable } from '../internals/serializable.js';
|
|
3
|
-
import { C as Callback, E as Emitter } from '../emitter-
|
|
3
|
+
import { C as Callback, E as Emitter } from '../emitter-36-9MnvA.js';
|
|
4
4
|
import { FrameworkError } from '../errors.js';
|
|
5
|
-
import { F as FullModelName } from '../chat-
|
|
5
|
+
import { F as FullModelName } from '../chat-DrqwUgD8.js';
|
|
6
6
|
import { ProviderName } from './constants.js';
|
|
7
7
|
import '../internals/helpers/promise.js';
|
|
8
8
|
import '../internals/types.js';
|
package/dist/backend/message.cjs
CHANGED
|
@@ -36,9 +36,11 @@ class Message extends serializable_cjs.Serializable {
|
|
|
36
36
|
__name(this, "Message");
|
|
37
37
|
}
|
|
38
38
|
meta;
|
|
39
|
+
id;
|
|
39
40
|
content;
|
|
40
|
-
constructor(content, meta = {}) {
|
|
41
|
+
constructor(content, meta = {}, id = void 0) {
|
|
41
42
|
super(), this.meta = meta;
|
|
43
|
+
this.id = id;
|
|
42
44
|
if (!meta?.createdAt) {
|
|
43
45
|
meta.createdAt = /* @__PURE__ */ new Date();
|
|
44
46
|
}
|
|
@@ -60,17 +62,17 @@ class Message extends serializable_cjs.Serializable {
|
|
|
60
62
|
}
|
|
61
63
|
assertContent(content) {
|
|
62
64
|
}
|
|
63
|
-
static of({ role, text, meta }) {
|
|
65
|
+
static of({ role, text, meta, id }) {
|
|
64
66
|
if (role === "user") {
|
|
65
|
-
return new UserMessage(text, meta);
|
|
67
|
+
return new UserMessage(text, meta, id);
|
|
66
68
|
} else if (role === "assistant") {
|
|
67
|
-
return new AssistantMessage(text, meta);
|
|
69
|
+
return new AssistantMessage(text, meta, id);
|
|
68
70
|
} else if (role === "system") {
|
|
69
|
-
return new SystemMessage(text, meta);
|
|
71
|
+
return new SystemMessage(text, meta, id);
|
|
70
72
|
} else if (role === "tool") {
|
|
71
|
-
return new ToolMessage(text, meta);
|
|
73
|
+
return new ToolMessage(text, meta, id);
|
|
72
74
|
} else {
|
|
73
|
-
return new CustomMessage(role, text, meta);
|
|
75
|
+
return new CustomMessage(role, text, meta, id);
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
get text() {
|
|
@@ -81,6 +83,7 @@ class Message extends serializable_cjs.Serializable {
|
|
|
81
83
|
}
|
|
82
84
|
createSnapshot() {
|
|
83
85
|
return {
|
|
86
|
+
id: this.id,
|
|
84
87
|
content: utils_cjs.shallowCopy(this.content),
|
|
85
88
|
meta: utils_cjs.shallowCopy(this.meta),
|
|
86
89
|
role: this.role
|
|
@@ -91,11 +94,13 @@ class Message extends serializable_cjs.Serializable {
|
|
|
91
94
|
}
|
|
92
95
|
toPlain() {
|
|
93
96
|
return {
|
|
97
|
+
id: this.id,
|
|
94
98
|
role: this.role,
|
|
95
99
|
content: utils_cjs.shallowCopy(this.content)
|
|
96
100
|
};
|
|
97
101
|
}
|
|
98
102
|
merge(other) {
|
|
103
|
+
this.id = this.id || other.id;
|
|
99
104
|
Object.assign(this, other.meta);
|
|
100
105
|
this.content.push(...other.content);
|
|
101
106
|
}
|
|
@@ -128,10 +133,12 @@ class AssistantMessage extends Message {
|
|
|
128
133
|
assertContent(content) {
|
|
129
134
|
if (content.type === "tool-call") {
|
|
130
135
|
const key = "args";
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
136
|
+
if (!Object.getOwnPropertyDescriptor(content, key)) {
|
|
137
|
+
const args = object_cjs.popProp(content, key);
|
|
138
|
+
if (args !== null && !object_cjs.hasProp(content, "input")) {
|
|
139
|
+
logger_cjs.Logger.root.warn(`The '${key}' property in the AssistantMessage class is deprecated and will be removed. Use the 'input' property for Tool Call content chunks instead.`);
|
|
140
|
+
content.input = args;
|
|
141
|
+
}
|
|
135
142
|
}
|
|
136
143
|
object_cjs.safeDefineProperty(content, key, () => {
|
|
137
144
|
logger_cjs.Logger.root.warn(`The '${key}' property in the Tool Call is deprecated and will be removed. Use the 'input' property instead.`);
|
|
@@ -240,8 +247,8 @@ class CustomMessage extends Message {
|
|
|
240
247
|
__name(this, "CustomMessage");
|
|
241
248
|
}
|
|
242
249
|
role;
|
|
243
|
-
constructor(role, content, meta = {}) {
|
|
244
|
-
super(content, meta);
|
|
250
|
+
constructor(role, content, meta = {}, id) {
|
|
251
|
+
super(content, meta, id);
|
|
245
252
|
if (!role) {
|
|
246
253
|
throw new errors_cjs.ValueError(`Role "${role}" must be specified!`);
|
|
247
254
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/backend/message.ts"],"names":["isText","content","type","isImage","isFile","isToolCall","isToolResult","Message","Serializable","meta","createdAt","Date","fromString","Array","isArray","chunk","assertContent","watchArray","onAdd","of","role","text","UserMessage","AssistantMessage","SystemMessage","ToolMessage","CustomMessage","getTexts","map","c","join","filter","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign","toPlain","merge","other","push","fromChunks","chunks","instance","forEach","Symbol","iterator","register","getToolCalls","key","args","popProp","hasProp","Logger","root","warn","input","safeDefineProperty","getToolResults","schema","z","object","literal","toolName","string","toolCallId","and","output","any","or","result","success","data","safeParse","ValueError","isError","isString","value","includes","getImages","getFiles","Role","ASSISTANT","SYSTEM","USER"],"mappings":"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","file":"message.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { FilePart, ImagePart, TextPart, ToolCallPart, ToolResultPart } from \"ai\";\nimport { z } from \"zod\";\nimport { ValueError } from \"@/errors.js\";\nimport { hasProp, popProp, safeDefineProperty } from \"@/internals/helpers/object.js\";\nimport { Logger } from \"@/logger/logger.js\";\nimport { isString } from \"remeda\";\nimport { watchArray } from \"@/internals/helpers/array.js\";\n\nexport type MessageRole = \"user\" | \"system\" | \"tool\" | \"assistant\";\nexport type MessageContentPart = TextPart | ToolCallPart | ImagePart | FilePart | ToolResultPart;\n\nexport interface MessageMeta {\n [key: string]: any;\n createdAt?: Date;\n}\n\nexport interface MessageInput {\n role: MessageRole;\n text: string; // TODO\n meta?: MessageMeta;\n}\n\nfunction isText(content: MessageContentPart): content is TextPart {\n return content.type === \"text\";\n}\nfunction isImage(content: MessageContentPart): content is ImagePart {\n return content.type === \"image\";\n}\nfunction isFile(content: MessageContentPart): content is FilePart {\n return content.type === \"file\";\n}\nfunction isToolCall(content: MessageContentPart): content is ToolCallPart {\n return content.type === \"tool-call\";\n}\nfunction isToolResult(content: MessageContentPart): content is ToolResultPart {\n return content.type === \"tool-result\";\n}\n\nexport abstract class Message<\n T extends MessageContentPart = MessageContentPart,\n R extends string = MessageRole | string,\n> extends Serializable {\n public abstract readonly role: R;\n public readonly content: T[];\n\n constructor(\n content: T | T[] | string,\n public readonly meta: MessageMeta = {},\n ) {\n super();\n if (!meta?.createdAt) {\n meta.createdAt = new Date();\n }\n if (typeof content === \"string\") {\n this.content = [this.fromString(content)];\n } else {\n this.content = Array.isArray(content) ? content : [content];\n }\n for (const chunk of this.content) {\n this.assertContent(chunk);\n }\n this.content = watchArray(this.content, {\n onAdd: this.assertContent,\n });\n }\n\n protected assertContent(content: T): asserts content is T {}\n\n protected abstract fromString(input: string): T;\n\n static of({ role, text, meta }: MessageInput): Message {\n if (role === \"user\") {\n return new UserMessage(text, meta);\n } else if (role === \"assistant\") {\n return new AssistantMessage(text, meta);\n } else if (role === \"system\") {\n return new SystemMessage(text, meta);\n } else if (role === \"tool\") {\n return new ToolMessage(text, meta);\n } else {\n return new CustomMessage(role, text, meta);\n }\n }\n\n get text() {\n return this.getTexts()\n .map((c) => c.text)\n .join(\"\");\n }\n\n getTexts() {\n return this.content.filter(isText) as TextPart[];\n }\n\n createSnapshot() {\n return { content: shallowCopy(this.content), meta: shallowCopy(this.meta), role: this.role };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n\n toPlain() {\n return { role: this.role, content: shallowCopy(this.content) } as const;\n }\n\n merge(other: Message<T, R>) {\n Object.assign(this, other.meta);\n this.content.push(...other.content);\n }\n\n static fromChunks<M2 extends Message>(this: new (...args: any[]) => M2, chunks: M2[]): M2 {\n const instance = new this([]);\n chunks.forEach((chunk) => instance.merge(chunk));\n return instance;\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.content[Symbol.iterator]();\n }\n}\n\nexport class AssistantMessage extends Message<TextPart | ToolCallPart | FilePart> {\n public readonly role = \"assistant\";\n\n static {\n this.register();\n }\n\n getToolCalls() {\n return this.content.filter(isToolCall);\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n\n protected assertContent(\n content: TextPart | ToolCallPart | FilePart,\n ): asserts content is TextPart | ToolCallPart | FilePart {\n if (content.type === \"tool-call\") {\n const key = \"args\";\n const args = popProp(content as any, key);\n\n if (args !== null && !hasProp(content, \"input\")) {\n Logger.root.warn(\n `The '${key}' property in the AssistantMessage class is deprecated and will be removed. Use the 'input' property for Tool Call content chunks instead.`,\n );\n content.input = args;\n }\n\n safeDefineProperty(content, key as keyof typeof content, () => {\n Logger.root.warn(\n `The '${key}' property in the Tool Call is deprecated and will be removed. Use the 'input' property instead.`,\n );\n return content.input;\n });\n }\n }\n}\n\nexport class ToolMessage extends Message<ToolResultPart> {\n public readonly role = \"tool\";\n\n static {\n this.register();\n }\n\n getToolResults() {\n return this.content.filter(isToolResult);\n }\n\n protected fromString(text: string): ToolResultPart {\n const schema = z\n .object({\n type: z.literal(\"tool-result\"),\n toolName: z.string(),\n toolCallId: z.string(),\n })\n .and(z.object({ output: z.any() }).or(z.object({ result: z.any() })));\n\n const { success, data } = schema.safeParse(text);\n if (!success) {\n throw new ValueError(`ToolMessage cannot be created from '${text}'!`);\n }\n\n return data as ToolResultPart;\n }\n\n protected assertContent(content: ToolResultPart): asserts content is ToolResultPart {\n const result = popProp(content as any, \"result\", null);\n const isError = popProp(content as any, \"isError\", false);\n\n if (result !== null && !hasProp(content, \"output\")) {\n Logger.root.warn(\n \"The 'result' property in the ToolMessage class is deprecated and will be removed. Use the 'output' property for content chunks instead.\",\n );\n if (isString(result)) {\n content.output = { type: isError ? \"error-text\" : \"text\", value: result };\n } else {\n content.output = { type: isError ? \"error-json\" : \"json\", value: result };\n }\n }\n\n safeDefineProperty(content, \"result\" as any, () => {\n Logger.root.warn(\n \"The 'result' property of Tool Message is deprecated and will be removed. Use the 'output.value' property instead.\",\n );\n return content.output.value as any;\n });\n safeDefineProperty(content, \"isError\" as any, () => {\n Logger.root.warn(\n \"The 'isError' property of Tool Message is deprecated and will be removed. Use the 'output.type' property instead.\",\n );\n return content.output.type.includes(\"error\");\n });\n }\n}\n\nexport class SystemMessage extends Message<TextPart> {\n public readonly role: MessageRole = \"system\";\n\n static {\n this.register();\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n}\n\nexport class UserMessage extends Message<TextPart | ImagePart | FilePart> {\n public readonly role = \"user\";\n\n static {\n this.register();\n }\n\n getImages() {\n return this.content.filter(isImage);\n }\n\n getFiles() {\n return this.content.filter(isFile);\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n}\n\nexport const Role = {\n ASSISTANT: \"assistant\",\n SYSTEM: \"system\",\n USER: \"user\",\n} as const;\n\nexport class CustomMessage extends Message<MessageContentPart, string> {\n public role: string;\n\n constructor(role: string, content: MessageContentPart | string, meta: MessageMeta = {}) {\n super(content, meta);\n if (!role) {\n throw new ValueError(`Role \"${role}\" must be specified!`);\n }\n this.role = role;\n }\n\n protected fromString(input: string): MessageContentPart {\n return { type: \"text\", text: input };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/backend/message.ts"],"names":["isText","content","type","isImage","isFile","isToolCall","isToolResult","Message","Serializable","id","meta","undefined","createdAt","Date","fromString","Array","isArray","chunk","assertContent","watchArray","onAdd","of","role","text","UserMessage","AssistantMessage","SystemMessage","ToolMessage","CustomMessage","getTexts","map","c","join","filter","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign","toPlain","merge","other","push","fromChunks","chunks","instance","forEach","Symbol","iterator","register","getToolCalls","key","getOwnPropertyDescriptor","args","popProp","hasProp","Logger","root","warn","input","safeDefineProperty","getToolResults","schema","z","object","literal","toolName","string","toolCallId","and","output","any","or","result","success","data","safeParse","ValueError","isError","isString","value","includes","getImages","getFiles","Role","ASSISTANT","SYSTEM","USER"],"mappings":"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","file":"message.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { FilePart, ImagePart, TextPart, ToolCallPart, ToolResultPart } from \"ai\";\nimport { z } from \"zod\";\nimport { ValueError } from \"@/errors.js\";\nimport { hasProp, popProp, safeDefineProperty } from \"@/internals/helpers/object.js\";\nimport { Logger } from \"@/logger/logger.js\";\nimport { isString } from \"remeda\";\nimport { watchArray } from \"@/internals/helpers/array.js\";\n\nexport type MessageRole = \"user\" | \"system\" | \"tool\" | \"assistant\";\nexport type MessageContentPart = TextPart | ToolCallPart | ImagePart | FilePart | ToolResultPart;\n\nexport interface MessageMeta {\n [key: string]: any;\n createdAt?: Date;\n}\n\nexport interface MessageInput {\n id?: string;\n role: MessageRole;\n text: string; // TODO\n meta?: MessageMeta;\n}\n\nfunction isText(content: MessageContentPart): content is TextPart {\n return content.type === \"text\";\n}\nfunction isImage(content: MessageContentPart): content is ImagePart {\n return content.type === \"image\";\n}\nfunction isFile(content: MessageContentPart): content is FilePart {\n return content.type === \"file\";\n}\nfunction isToolCall(content: MessageContentPart): content is ToolCallPart {\n return content.type === \"tool-call\";\n}\nfunction isToolResult(content: MessageContentPart): content is ToolResultPart {\n return content.type === \"tool-result\";\n}\n\nexport abstract class Message<\n T extends MessageContentPart = MessageContentPart,\n R extends string = MessageRole | string,\n> extends Serializable {\n public id: string | undefined;\n public abstract readonly role: R;\n public readonly content: T[];\n\n constructor(\n content: T | T[] | string,\n public readonly meta: MessageMeta = {},\n id: string | undefined = undefined,\n ) {\n super();\n this.id = id;\n if (!meta?.createdAt) {\n meta.createdAt = new Date();\n }\n if (typeof content === \"string\") {\n this.content = [this.fromString(content)];\n } else {\n this.content = Array.isArray(content) ? content : [content];\n }\n for (const chunk of this.content) {\n this.assertContent(chunk);\n }\n this.content = watchArray(this.content, {\n onAdd: this.assertContent,\n });\n }\n\n protected assertContent(content: T): asserts content is T {}\n\n protected abstract fromString(input: string): T;\n\n static of({ role, text, meta, id }: MessageInput): Message {\n if (role === \"user\") {\n return new UserMessage(text, meta, id);\n } else if (role === \"assistant\") {\n return new AssistantMessage(text, meta, id);\n } else if (role === \"system\") {\n return new SystemMessage(text, meta, id);\n } else if (role === \"tool\") {\n return new ToolMessage(text, meta, id);\n } else {\n return new CustomMessage(role, text, meta, id);\n }\n }\n\n get text() {\n return this.getTexts()\n .map((c) => c.text)\n .join(\"\");\n }\n\n getTexts() {\n return this.content.filter(isText) as TextPart[];\n }\n\n createSnapshot() {\n return {\n id: this.id,\n content: shallowCopy(this.content),\n meta: shallowCopy(this.meta),\n role: this.role,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n\n toPlain() {\n return { id: this.id, role: this.role, content: shallowCopy(this.content) } as const;\n }\n\n merge(other: Message<T, R>) {\n this.id = this.id || other.id;\n Object.assign(this, other.meta);\n this.content.push(...other.content);\n }\n\n static fromChunks<M2 extends Message>(this: new (...args: any[]) => M2, chunks: M2[]): M2 {\n const instance = new this([]);\n chunks.forEach((chunk) => instance.merge(chunk));\n return instance;\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.content[Symbol.iterator]();\n }\n}\n\nexport class AssistantMessage extends Message<TextPart | ToolCallPart | FilePart> {\n public readonly role = \"assistant\";\n\n static {\n this.register();\n }\n\n getToolCalls() {\n return this.content.filter(isToolCall);\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n\n protected assertContent(\n content: TextPart | ToolCallPart | FilePart,\n ): asserts content is TextPart | ToolCallPart | FilePart {\n if (content.type === \"tool-call\") {\n const key = \"args\";\n if (!Object.getOwnPropertyDescriptor(content, key)) {\n const args = popProp(content as any, key);\n\n if (args !== null && !hasProp(content, \"input\")) {\n Logger.root.warn(\n `The '${key}' property in the AssistantMessage class is deprecated and will be removed. Use the 'input' property for Tool Call content chunks instead.`,\n );\n content.input = args;\n }\n }\n\n safeDefineProperty(content, key as keyof typeof content, () => {\n Logger.root.warn(\n `The '${key}' property in the Tool Call is deprecated and will be removed. Use the 'input' property instead.`,\n );\n return content.input;\n });\n }\n }\n}\n\nexport class ToolMessage extends Message<ToolResultPart> {\n public readonly role = \"tool\";\n\n static {\n this.register();\n }\n\n getToolResults() {\n return this.content.filter(isToolResult);\n }\n\n protected fromString(text: string): ToolResultPart {\n const schema = z\n .object({\n type: z.literal(\"tool-result\"),\n toolName: z.string(),\n toolCallId: z.string(),\n })\n .and(z.object({ output: z.any() }).or(z.object({ result: z.any() })));\n\n const { success, data } = schema.safeParse(text);\n if (!success) {\n throw new ValueError(`ToolMessage cannot be created from '${text}'!`);\n }\n\n return data as ToolResultPart;\n }\n\n protected assertContent(content: ToolResultPart): asserts content is ToolResultPart {\n const result = popProp(content as any, \"result\", null);\n const isError = popProp(content as any, \"isError\", false);\n\n if (result !== null && !hasProp(content, \"output\")) {\n Logger.root.warn(\n \"The 'result' property in the ToolMessage class is deprecated and will be removed. Use the 'output' property for content chunks instead.\",\n );\n if (isString(result)) {\n content.output = { type: isError ? \"error-text\" : \"text\", value: result };\n } else {\n content.output = { type: isError ? \"error-json\" : \"json\", value: result };\n }\n }\n\n safeDefineProperty(content, \"result\" as any, () => {\n Logger.root.warn(\n \"The 'result' property of Tool Message is deprecated and will be removed. Use the 'output.value' property instead.\",\n );\n return content.output.value as any;\n });\n safeDefineProperty(content, \"isError\" as any, () => {\n Logger.root.warn(\n \"The 'isError' property of Tool Message is deprecated and will be removed. Use the 'output.type' property instead.\",\n );\n return content.output.type.includes(\"error\");\n });\n }\n}\n\nexport class SystemMessage extends Message<TextPart> {\n public readonly role: MessageRole = \"system\";\n\n static {\n this.register();\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n}\n\nexport class UserMessage extends Message<TextPart | ImagePart | FilePart> {\n public readonly role = \"user\";\n\n static {\n this.register();\n }\n\n getImages() {\n return this.content.filter(isImage);\n }\n\n getFiles() {\n return this.content.filter(isFile);\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n}\n\nexport const Role = {\n ASSISTANT: \"assistant\",\n SYSTEM: \"system\",\n USER: \"user\",\n} as const;\n\nexport class CustomMessage extends Message<MessageContentPart, string> {\n public role: string;\n\n constructor(\n role: string,\n content: MessageContentPart | string,\n meta: MessageMeta = {},\n id?: string,\n ) {\n super(content, meta, id);\n if (!role) {\n throw new ValueError(`Role \"${role}\" must be specified!`);\n }\n this.role = role;\n }\n\n protected fromString(input: string): MessageContentPart {\n return { type: \"text\", text: input };\n }\n}\n"]}
|
|
@@ -15,27 +15,31 @@ interface MessageMeta {
|
|
|
15
15
|
createdAt?: Date;
|
|
16
16
|
}
|
|
17
17
|
interface MessageInput {
|
|
18
|
+
id?: string;
|
|
18
19
|
role: MessageRole;
|
|
19
20
|
text: string;
|
|
20
21
|
meta?: MessageMeta;
|
|
21
22
|
}
|
|
22
23
|
declare abstract class Message<T extends MessageContentPart = MessageContentPart, R extends string = MessageRole | string> extends Serializable {
|
|
23
24
|
readonly meta: MessageMeta;
|
|
25
|
+
id: string | undefined;
|
|
24
26
|
abstract readonly role: R;
|
|
25
27
|
readonly content: T[];
|
|
26
|
-
constructor(content: T | T[] | string, meta?: MessageMeta);
|
|
28
|
+
constructor(content: T | T[] | string, meta?: MessageMeta, id?: string | undefined);
|
|
27
29
|
protected assertContent(content: T): asserts content is T;
|
|
28
30
|
protected abstract fromString(input: string): T;
|
|
29
|
-
static of({ role, text, meta }: MessageInput): Message;
|
|
31
|
+
static of({ role, text, meta, id }: MessageInput): Message;
|
|
30
32
|
get text(): string;
|
|
31
33
|
getTexts(): TextPart[];
|
|
32
34
|
createSnapshot(): {
|
|
35
|
+
id: string | undefined;
|
|
33
36
|
content: T[];
|
|
34
37
|
meta: MessageMeta;
|
|
35
38
|
role: R;
|
|
36
39
|
};
|
|
37
40
|
loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
|
|
38
41
|
toPlain(): {
|
|
42
|
+
readonly id: string | undefined;
|
|
39
43
|
readonly role: R;
|
|
40
44
|
readonly content: T[];
|
|
41
45
|
};
|
|
@@ -72,7 +76,7 @@ declare const Role: {
|
|
|
72
76
|
};
|
|
73
77
|
declare class CustomMessage extends Message<MessageContentPart, string> {
|
|
74
78
|
role: string;
|
|
75
|
-
constructor(role: string, content: MessageContentPart | string, meta?: MessageMeta);
|
|
79
|
+
constructor(role: string, content: MessageContentPart | string, meta?: MessageMeta, id?: string);
|
|
76
80
|
protected fromString(input: string): MessageContentPart;
|
|
77
81
|
}
|
|
78
82
|
|
|
@@ -15,27 +15,31 @@ interface MessageMeta {
|
|
|
15
15
|
createdAt?: Date;
|
|
16
16
|
}
|
|
17
17
|
interface MessageInput {
|
|
18
|
+
id?: string;
|
|
18
19
|
role: MessageRole;
|
|
19
20
|
text: string;
|
|
20
21
|
meta?: MessageMeta;
|
|
21
22
|
}
|
|
22
23
|
declare abstract class Message<T extends MessageContentPart = MessageContentPart, R extends string = MessageRole | string> extends Serializable {
|
|
23
24
|
readonly meta: MessageMeta;
|
|
25
|
+
id: string | undefined;
|
|
24
26
|
abstract readonly role: R;
|
|
25
27
|
readonly content: T[];
|
|
26
|
-
constructor(content: T | T[] | string, meta?: MessageMeta);
|
|
28
|
+
constructor(content: T | T[] | string, meta?: MessageMeta, id?: string | undefined);
|
|
27
29
|
protected assertContent(content: T): asserts content is T;
|
|
28
30
|
protected abstract fromString(input: string): T;
|
|
29
|
-
static of({ role, text, meta }: MessageInput): Message;
|
|
31
|
+
static of({ role, text, meta, id }: MessageInput): Message;
|
|
30
32
|
get text(): string;
|
|
31
33
|
getTexts(): TextPart[];
|
|
32
34
|
createSnapshot(): {
|
|
35
|
+
id: string | undefined;
|
|
33
36
|
content: T[];
|
|
34
37
|
meta: MessageMeta;
|
|
35
38
|
role: R;
|
|
36
39
|
};
|
|
37
40
|
loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
|
|
38
41
|
toPlain(): {
|
|
42
|
+
readonly id: string | undefined;
|
|
39
43
|
readonly role: R;
|
|
40
44
|
readonly content: T[];
|
|
41
45
|
};
|
|
@@ -72,7 +76,7 @@ declare const Role: {
|
|
|
72
76
|
};
|
|
73
77
|
declare class CustomMessage extends Message<MessageContentPart, string> {
|
|
74
78
|
role: string;
|
|
75
|
-
constructor(role: string, content: MessageContentPart | string, meta?: MessageMeta);
|
|
79
|
+
constructor(role: string, content: MessageContentPart | string, meta?: MessageMeta, id?: string);
|
|
76
80
|
protected fromString(input: string): MessageContentPart;
|
|
77
81
|
}
|
|
78
82
|
|
package/dist/backend/message.js
CHANGED
|
@@ -34,9 +34,11 @@ class Message extends Serializable {
|
|
|
34
34
|
__name(this, "Message");
|
|
35
35
|
}
|
|
36
36
|
meta;
|
|
37
|
+
id;
|
|
37
38
|
content;
|
|
38
|
-
constructor(content, meta = {}) {
|
|
39
|
+
constructor(content, meta = {}, id = void 0) {
|
|
39
40
|
super(), this.meta = meta;
|
|
41
|
+
this.id = id;
|
|
40
42
|
if (!meta?.createdAt) {
|
|
41
43
|
meta.createdAt = /* @__PURE__ */ new Date();
|
|
42
44
|
}
|
|
@@ -58,17 +60,17 @@ class Message extends Serializable {
|
|
|
58
60
|
}
|
|
59
61
|
assertContent(content) {
|
|
60
62
|
}
|
|
61
|
-
static of({ role, text, meta }) {
|
|
63
|
+
static of({ role, text, meta, id }) {
|
|
62
64
|
if (role === "user") {
|
|
63
|
-
return new UserMessage(text, meta);
|
|
65
|
+
return new UserMessage(text, meta, id);
|
|
64
66
|
} else if (role === "assistant") {
|
|
65
|
-
return new AssistantMessage(text, meta);
|
|
67
|
+
return new AssistantMessage(text, meta, id);
|
|
66
68
|
} else if (role === "system") {
|
|
67
|
-
return new SystemMessage(text, meta);
|
|
69
|
+
return new SystemMessage(text, meta, id);
|
|
68
70
|
} else if (role === "tool") {
|
|
69
|
-
return new ToolMessage(text, meta);
|
|
71
|
+
return new ToolMessage(text, meta, id);
|
|
70
72
|
} else {
|
|
71
|
-
return new CustomMessage(role, text, meta);
|
|
73
|
+
return new CustomMessage(role, text, meta, id);
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
get text() {
|
|
@@ -79,6 +81,7 @@ class Message extends Serializable {
|
|
|
79
81
|
}
|
|
80
82
|
createSnapshot() {
|
|
81
83
|
return {
|
|
84
|
+
id: this.id,
|
|
82
85
|
content: shallowCopy(this.content),
|
|
83
86
|
meta: shallowCopy(this.meta),
|
|
84
87
|
role: this.role
|
|
@@ -89,11 +92,13 @@ class Message extends Serializable {
|
|
|
89
92
|
}
|
|
90
93
|
toPlain() {
|
|
91
94
|
return {
|
|
95
|
+
id: this.id,
|
|
92
96
|
role: this.role,
|
|
93
97
|
content: shallowCopy(this.content)
|
|
94
98
|
};
|
|
95
99
|
}
|
|
96
100
|
merge(other) {
|
|
101
|
+
this.id = this.id || other.id;
|
|
97
102
|
Object.assign(this, other.meta);
|
|
98
103
|
this.content.push(...other.content);
|
|
99
104
|
}
|
|
@@ -126,10 +131,12 @@ class AssistantMessage extends Message {
|
|
|
126
131
|
assertContent(content) {
|
|
127
132
|
if (content.type === "tool-call") {
|
|
128
133
|
const key = "args";
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
134
|
+
if (!Object.getOwnPropertyDescriptor(content, key)) {
|
|
135
|
+
const args = popProp(content, key);
|
|
136
|
+
if (args !== null && !hasProp(content, "input")) {
|
|
137
|
+
Logger.root.warn(`The '${key}' property in the AssistantMessage class is deprecated and will be removed. Use the 'input' property for Tool Call content chunks instead.`);
|
|
138
|
+
content.input = args;
|
|
139
|
+
}
|
|
133
140
|
}
|
|
134
141
|
safeDefineProperty(content, key, () => {
|
|
135
142
|
Logger.root.warn(`The '${key}' property in the Tool Call is deprecated and will be removed. Use the 'input' property instead.`);
|
|
@@ -238,8 +245,8 @@ class CustomMessage extends Message {
|
|
|
238
245
|
__name(this, "CustomMessage");
|
|
239
246
|
}
|
|
240
247
|
role;
|
|
241
|
-
constructor(role, content, meta = {}) {
|
|
242
|
-
super(content, meta);
|
|
248
|
+
constructor(role, content, meta = {}, id) {
|
|
249
|
+
super(content, meta, id);
|
|
243
250
|
if (!role) {
|
|
244
251
|
throw new ValueError(`Role "${role}" must be specified!`);
|
|
245
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/backend/message.ts"],"names":["isText","content","type","isImage","isFile","isToolCall","isToolResult","Message","Serializable","meta","createdAt","Date","fromString","Array","isArray","chunk","assertContent","watchArray","onAdd","of","role","text","UserMessage","AssistantMessage","SystemMessage","ToolMessage","CustomMessage","getTexts","map","c","join","filter","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign","toPlain","merge","other","push","fromChunks","chunks","instance","forEach","Symbol","iterator","register","getToolCalls","key","args","popProp","hasProp","Logger","root","warn","input","safeDefineProperty","getToolResults","schema","z","object","literal","toolName","string","toolCallId","and","output","any","or","result","success","data","safeParse","ValueError","isError","isString","value","includes","getImages","getFiles","Role","ASSISTANT","SYSTEM","USER"],"mappings":"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","file":"message.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { FilePart, ImagePart, TextPart, ToolCallPart, ToolResultPart } from \"ai\";\nimport { z } from \"zod\";\nimport { ValueError } from \"@/errors.js\";\nimport { hasProp, popProp, safeDefineProperty } from \"@/internals/helpers/object.js\";\nimport { Logger } from \"@/logger/logger.js\";\nimport { isString } from \"remeda\";\nimport { watchArray } from \"@/internals/helpers/array.js\";\n\nexport type MessageRole = \"user\" | \"system\" | \"tool\" | \"assistant\";\nexport type MessageContentPart = TextPart | ToolCallPart | ImagePart | FilePart | ToolResultPart;\n\nexport interface MessageMeta {\n [key: string]: any;\n createdAt?: Date;\n}\n\nexport interface MessageInput {\n role: MessageRole;\n text: string; // TODO\n meta?: MessageMeta;\n}\n\nfunction isText(content: MessageContentPart): content is TextPart {\n return content.type === \"text\";\n}\nfunction isImage(content: MessageContentPart): content is ImagePart {\n return content.type === \"image\";\n}\nfunction isFile(content: MessageContentPart): content is FilePart {\n return content.type === \"file\";\n}\nfunction isToolCall(content: MessageContentPart): content is ToolCallPart {\n return content.type === \"tool-call\";\n}\nfunction isToolResult(content: MessageContentPart): content is ToolResultPart {\n return content.type === \"tool-result\";\n}\n\nexport abstract class Message<\n T extends MessageContentPart = MessageContentPart,\n R extends string = MessageRole | string,\n> extends Serializable {\n public abstract readonly role: R;\n public readonly content: T[];\n\n constructor(\n content: T | T[] | string,\n public readonly meta: MessageMeta = {},\n ) {\n super();\n if (!meta?.createdAt) {\n meta.createdAt = new Date();\n }\n if (typeof content === \"string\") {\n this.content = [this.fromString(content)];\n } else {\n this.content = Array.isArray(content) ? content : [content];\n }\n for (const chunk of this.content) {\n this.assertContent(chunk);\n }\n this.content = watchArray(this.content, {\n onAdd: this.assertContent,\n });\n }\n\n protected assertContent(content: T): asserts content is T {}\n\n protected abstract fromString(input: string): T;\n\n static of({ role, text, meta }: MessageInput): Message {\n if (role === \"user\") {\n return new UserMessage(text, meta);\n } else if (role === \"assistant\") {\n return new AssistantMessage(text, meta);\n } else if (role === \"system\") {\n return new SystemMessage(text, meta);\n } else if (role === \"tool\") {\n return new ToolMessage(text, meta);\n } else {\n return new CustomMessage(role, text, meta);\n }\n }\n\n get text() {\n return this.getTexts()\n .map((c) => c.text)\n .join(\"\");\n }\n\n getTexts() {\n return this.content.filter(isText) as TextPart[];\n }\n\n createSnapshot() {\n return { content: shallowCopy(this.content), meta: shallowCopy(this.meta), role: this.role };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n\n toPlain() {\n return { role: this.role, content: shallowCopy(this.content) } as const;\n }\n\n merge(other: Message<T, R>) {\n Object.assign(this, other.meta);\n this.content.push(...other.content);\n }\n\n static fromChunks<M2 extends Message>(this: new (...args: any[]) => M2, chunks: M2[]): M2 {\n const instance = new this([]);\n chunks.forEach((chunk) => instance.merge(chunk));\n return instance;\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.content[Symbol.iterator]();\n }\n}\n\nexport class AssistantMessage extends Message<TextPart | ToolCallPart | FilePart> {\n public readonly role = \"assistant\";\n\n static {\n this.register();\n }\n\n getToolCalls() {\n return this.content.filter(isToolCall);\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n\n protected assertContent(\n content: TextPart | ToolCallPart | FilePart,\n ): asserts content is TextPart | ToolCallPart | FilePart {\n if (content.type === \"tool-call\") {\n const key = \"args\";\n const args = popProp(content as any, key);\n\n if (args !== null && !hasProp(content, \"input\")) {\n Logger.root.warn(\n `The '${key}' property in the AssistantMessage class is deprecated and will be removed. Use the 'input' property for Tool Call content chunks instead.`,\n );\n content.input = args;\n }\n\n safeDefineProperty(content, key as keyof typeof content, () => {\n Logger.root.warn(\n `The '${key}' property in the Tool Call is deprecated and will be removed. Use the 'input' property instead.`,\n );\n return content.input;\n });\n }\n }\n}\n\nexport class ToolMessage extends Message<ToolResultPart> {\n public readonly role = \"tool\";\n\n static {\n this.register();\n }\n\n getToolResults() {\n return this.content.filter(isToolResult);\n }\n\n protected fromString(text: string): ToolResultPart {\n const schema = z\n .object({\n type: z.literal(\"tool-result\"),\n toolName: z.string(),\n toolCallId: z.string(),\n })\n .and(z.object({ output: z.any() }).or(z.object({ result: z.any() })));\n\n const { success, data } = schema.safeParse(text);\n if (!success) {\n throw new ValueError(`ToolMessage cannot be created from '${text}'!`);\n }\n\n return data as ToolResultPart;\n }\n\n protected assertContent(content: ToolResultPart): asserts content is ToolResultPart {\n const result = popProp(content as any, \"result\", null);\n const isError = popProp(content as any, \"isError\", false);\n\n if (result !== null && !hasProp(content, \"output\")) {\n Logger.root.warn(\n \"The 'result' property in the ToolMessage class is deprecated and will be removed. Use the 'output' property for content chunks instead.\",\n );\n if (isString(result)) {\n content.output = { type: isError ? \"error-text\" : \"text\", value: result };\n } else {\n content.output = { type: isError ? \"error-json\" : \"json\", value: result };\n }\n }\n\n safeDefineProperty(content, \"result\" as any, () => {\n Logger.root.warn(\n \"The 'result' property of Tool Message is deprecated and will be removed. Use the 'output.value' property instead.\",\n );\n return content.output.value as any;\n });\n safeDefineProperty(content, \"isError\" as any, () => {\n Logger.root.warn(\n \"The 'isError' property of Tool Message is deprecated and will be removed. Use the 'output.type' property instead.\",\n );\n return content.output.type.includes(\"error\");\n });\n }\n}\n\nexport class SystemMessage extends Message<TextPart> {\n public readonly role: MessageRole = \"system\";\n\n static {\n this.register();\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n}\n\nexport class UserMessage extends Message<TextPart | ImagePart | FilePart> {\n public readonly role = \"user\";\n\n static {\n this.register();\n }\n\n getImages() {\n return this.content.filter(isImage);\n }\n\n getFiles() {\n return this.content.filter(isFile);\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n}\n\nexport const Role = {\n ASSISTANT: \"assistant\",\n SYSTEM: \"system\",\n USER: \"user\",\n} as const;\n\nexport class CustomMessage extends Message<MessageContentPart, string> {\n public role: string;\n\n constructor(role: string, content: MessageContentPart | string, meta: MessageMeta = {}) {\n super(content, meta);\n if (!role) {\n throw new ValueError(`Role \"${role}\" must be specified!`);\n }\n this.role = role;\n }\n\n protected fromString(input: string): MessageContentPart {\n return { type: \"text\", text: input };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/backend/message.ts"],"names":["isText","content","type","isImage","isFile","isToolCall","isToolResult","Message","Serializable","id","meta","undefined","createdAt","Date","fromString","Array","isArray","chunk","assertContent","watchArray","onAdd","of","role","text","UserMessage","AssistantMessage","SystemMessage","ToolMessage","CustomMessage","getTexts","map","c","join","filter","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign","toPlain","merge","other","push","fromChunks","chunks","instance","forEach","Symbol","iterator","register","getToolCalls","key","getOwnPropertyDescriptor","args","popProp","hasProp","Logger","root","warn","input","safeDefineProperty","getToolResults","schema","z","object","literal","toolName","string","toolCallId","and","output","any","or","result","success","data","safeParse","ValueError","isError","isString","value","includes","getImages","getFiles","Role","ASSISTANT","SYSTEM","USER"],"mappings":"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","file":"message.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { FilePart, ImagePart, TextPart, ToolCallPart, ToolResultPart } from \"ai\";\nimport { z } from \"zod\";\nimport { ValueError } from \"@/errors.js\";\nimport { hasProp, popProp, safeDefineProperty } from \"@/internals/helpers/object.js\";\nimport { Logger } from \"@/logger/logger.js\";\nimport { isString } from \"remeda\";\nimport { watchArray } from \"@/internals/helpers/array.js\";\n\nexport type MessageRole = \"user\" | \"system\" | \"tool\" | \"assistant\";\nexport type MessageContentPart = TextPart | ToolCallPart | ImagePart | FilePart | ToolResultPart;\n\nexport interface MessageMeta {\n [key: string]: any;\n createdAt?: Date;\n}\n\nexport interface MessageInput {\n id?: string;\n role: MessageRole;\n text: string; // TODO\n meta?: MessageMeta;\n}\n\nfunction isText(content: MessageContentPart): content is TextPart {\n return content.type === \"text\";\n}\nfunction isImage(content: MessageContentPart): content is ImagePart {\n return content.type === \"image\";\n}\nfunction isFile(content: MessageContentPart): content is FilePart {\n return content.type === \"file\";\n}\nfunction isToolCall(content: MessageContentPart): content is ToolCallPart {\n return content.type === \"tool-call\";\n}\nfunction isToolResult(content: MessageContentPart): content is ToolResultPart {\n return content.type === \"tool-result\";\n}\n\nexport abstract class Message<\n T extends MessageContentPart = MessageContentPart,\n R extends string = MessageRole | string,\n> extends Serializable {\n public id: string | undefined;\n public abstract readonly role: R;\n public readonly content: T[];\n\n constructor(\n content: T | T[] | string,\n public readonly meta: MessageMeta = {},\n id: string | undefined = undefined,\n ) {\n super();\n this.id = id;\n if (!meta?.createdAt) {\n meta.createdAt = new Date();\n }\n if (typeof content === \"string\") {\n this.content = [this.fromString(content)];\n } else {\n this.content = Array.isArray(content) ? content : [content];\n }\n for (const chunk of this.content) {\n this.assertContent(chunk);\n }\n this.content = watchArray(this.content, {\n onAdd: this.assertContent,\n });\n }\n\n protected assertContent(content: T): asserts content is T {}\n\n protected abstract fromString(input: string): T;\n\n static of({ role, text, meta, id }: MessageInput): Message {\n if (role === \"user\") {\n return new UserMessage(text, meta, id);\n } else if (role === \"assistant\") {\n return new AssistantMessage(text, meta, id);\n } else if (role === \"system\") {\n return new SystemMessage(text, meta, id);\n } else if (role === \"tool\") {\n return new ToolMessage(text, meta, id);\n } else {\n return new CustomMessage(role, text, meta, id);\n }\n }\n\n get text() {\n return this.getTexts()\n .map((c) => c.text)\n .join(\"\");\n }\n\n getTexts() {\n return this.content.filter(isText) as TextPart[];\n }\n\n createSnapshot() {\n return {\n id: this.id,\n content: shallowCopy(this.content),\n meta: shallowCopy(this.meta),\n role: this.role,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n\n toPlain() {\n return { id: this.id, role: this.role, content: shallowCopy(this.content) } as const;\n }\n\n merge(other: Message<T, R>) {\n this.id = this.id || other.id;\n Object.assign(this, other.meta);\n this.content.push(...other.content);\n }\n\n static fromChunks<M2 extends Message>(this: new (...args: any[]) => M2, chunks: M2[]): M2 {\n const instance = new this([]);\n chunks.forEach((chunk) => instance.merge(chunk));\n return instance;\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.content[Symbol.iterator]();\n }\n}\n\nexport class AssistantMessage extends Message<TextPart | ToolCallPart | FilePart> {\n public readonly role = \"assistant\";\n\n static {\n this.register();\n }\n\n getToolCalls() {\n return this.content.filter(isToolCall);\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n\n protected assertContent(\n content: TextPart | ToolCallPart | FilePart,\n ): asserts content is TextPart | ToolCallPart | FilePart {\n if (content.type === \"tool-call\") {\n const key = \"args\";\n if (!Object.getOwnPropertyDescriptor(content, key)) {\n const args = popProp(content as any, key);\n\n if (args !== null && !hasProp(content, \"input\")) {\n Logger.root.warn(\n `The '${key}' property in the AssistantMessage class is deprecated and will be removed. Use the 'input' property for Tool Call content chunks instead.`,\n );\n content.input = args;\n }\n }\n\n safeDefineProperty(content, key as keyof typeof content, () => {\n Logger.root.warn(\n `The '${key}' property in the Tool Call is deprecated and will be removed. Use the 'input' property instead.`,\n );\n return content.input;\n });\n }\n }\n}\n\nexport class ToolMessage extends Message<ToolResultPart> {\n public readonly role = \"tool\";\n\n static {\n this.register();\n }\n\n getToolResults() {\n return this.content.filter(isToolResult);\n }\n\n protected fromString(text: string): ToolResultPart {\n const schema = z\n .object({\n type: z.literal(\"tool-result\"),\n toolName: z.string(),\n toolCallId: z.string(),\n })\n .and(z.object({ output: z.any() }).or(z.object({ result: z.any() })));\n\n const { success, data } = schema.safeParse(text);\n if (!success) {\n throw new ValueError(`ToolMessage cannot be created from '${text}'!`);\n }\n\n return data as ToolResultPart;\n }\n\n protected assertContent(content: ToolResultPart): asserts content is ToolResultPart {\n const result = popProp(content as any, \"result\", null);\n const isError = popProp(content as any, \"isError\", false);\n\n if (result !== null && !hasProp(content, \"output\")) {\n Logger.root.warn(\n \"The 'result' property in the ToolMessage class is deprecated and will be removed. Use the 'output' property for content chunks instead.\",\n );\n if (isString(result)) {\n content.output = { type: isError ? \"error-text\" : \"text\", value: result };\n } else {\n content.output = { type: isError ? \"error-json\" : \"json\", value: result };\n }\n }\n\n safeDefineProperty(content, \"result\" as any, () => {\n Logger.root.warn(\n \"The 'result' property of Tool Message is deprecated and will be removed. Use the 'output.value' property instead.\",\n );\n return content.output.value as any;\n });\n safeDefineProperty(content, \"isError\" as any, () => {\n Logger.root.warn(\n \"The 'isError' property of Tool Message is deprecated and will be removed. Use the 'output.type' property instead.\",\n );\n return content.output.type.includes(\"error\");\n });\n }\n}\n\nexport class SystemMessage extends Message<TextPart> {\n public readonly role: MessageRole = \"system\";\n\n static {\n this.register();\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n}\n\nexport class UserMessage extends Message<TextPart | ImagePart | FilePart> {\n public readonly role = \"user\";\n\n static {\n this.register();\n }\n\n getImages() {\n return this.content.filter(isImage);\n }\n\n getFiles() {\n return this.content.filter(isFile);\n }\n\n protected fromString(text: string): TextPart {\n return { type: \"text\", text };\n }\n}\n\nexport const Role = {\n ASSISTANT: \"assistant\",\n SYSTEM: \"system\",\n USER: \"user\",\n} as const;\n\nexport class CustomMessage extends Message<MessageContentPart, string> {\n public role: string;\n\n constructor(\n role: string,\n content: MessageContentPart | string,\n meta: MessageMeta = {},\n id?: string,\n ) {\n super(content, meta, id);\n if (!role) {\n throw new ValueError(`Role \"${role}\" must be specified!`);\n }\n this.role = role;\n }\n\n protected fromString(input: string): MessageContentPart {\n return { type: \"text\", text: input };\n }\n}\n"]}
|
package/dist/backend/utils.d.cts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import '../internals/types.cjs';
|
|
2
2
|
import './constants.cjs';
|
|
3
3
|
import '../tools/base.cjs';
|
|
4
|
-
export { F as FullModelName, r as filterToolsByToolChoice, q as generateToolUnionSchema, o as loadModel, p as parseModel } from '../chat-
|
|
4
|
+
export { F as FullModelName, r as filterToolsByToolChoice, q as generateToolUnionSchema, o as loadModel, p as parseModel } from '../chat-BOb9n7AJ.cjs';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import '../internals/helpers/guards.cjs';
|
|
7
7
|
import 'ajv';
|
|
8
8
|
import '../context.cjs';
|
|
9
|
-
import '../emitter-
|
|
9
|
+
import '../emitter-jN55XZZq.cjs';
|
|
10
10
|
import '../internals/serializable.cjs';
|
|
11
11
|
import '../internals/helpers/promise.cjs';
|
|
12
12
|
import '../errors.cjs';
|
package/dist/backend/utils.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import '../internals/types.js';
|
|
2
2
|
import './constants.js';
|
|
3
3
|
import '../tools/base.js';
|
|
4
|
-
export { F as FullModelName, r as filterToolsByToolChoice, q as generateToolUnionSchema, o as loadModel, p as parseModel } from '../chat-
|
|
4
|
+
export { F as FullModelName, r as filterToolsByToolChoice, q as generateToolUnionSchema, o as loadModel, p as parseModel } from '../chat-DrqwUgD8.js';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import '../internals/helpers/guards.js';
|
|
7
7
|
import 'ajv';
|
|
8
8
|
import '../context.js';
|
|
9
|
-
import '../emitter-
|
|
9
|
+
import '../emitter-36-9MnvA.js';
|
|
10
10
|
import '../internals/serializable.js';
|
|
11
11
|
import '../internals/helpers/promise.js';
|
|
12
12
|
import '../errors.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Run, GetRunContext } from './context.js';
|
|
1
|
+
import { MiddlewareType, Run, GetRunContext } from './context.js';
|
|
2
2
|
import { FrameworkError } from './errors.js';
|
|
3
3
|
import { Serializable } from './internals/serializable.js';
|
|
4
|
-
import { E as Emitter } from './emitter-
|
|
4
|
+
import { E as Emitter } from './emitter-36-9MnvA.js';
|
|
5
5
|
import { BaseMemory } from './memory/base.js';
|
|
6
6
|
import { OmitEmpty } from './internals/types.js';
|
|
7
7
|
import { AnyTool } from './tools/base.js';
|
|
@@ -39,6 +39,7 @@ interface BaseAgentRunOptions {
|
|
|
39
39
|
declare abstract class BaseAgent<TInput, TOutput, TOptions extends BaseAgentRunOptions = BaseAgentRunOptions> extends Serializable {
|
|
40
40
|
protected isRunning: boolean;
|
|
41
41
|
abstract readonly emitter: Emitter<unknown>;
|
|
42
|
+
readonly middlewares: MiddlewareType<typeof this>[];
|
|
42
43
|
run(...[input, options]: Partial<TOptions> extends TOptions ? [input: TInput, options?: TOptions] : [input: TInput, options: TOptions]): Run<TOutput, this, readonly [TInput, TOptions | undefined]>;
|
|
43
44
|
protected abstract _run(input: TInput, options: TOptions, run: GetRunContext<typeof this>): Promise<TOutput>;
|
|
44
45
|
destroy(): void;
|
|
@@ -48,8 +49,9 @@ declare abstract class BaseAgent<TInput, TOutput, TOptions extends BaseAgentRunO
|
|
|
48
49
|
createSnapshot(): {
|
|
49
50
|
isRunning: boolean;
|
|
50
51
|
emitter: Emitter<unknown>;
|
|
52
|
+
middlewares: MiddlewareType<any>[];
|
|
51
53
|
};
|
|
52
54
|
loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
|
-
export { AgentError as A, type BaseAgentRunOptions as B, type GetAgentInput as G, type InternalAgentCallbackValue as I, type PublicAgentCallbackValue as P, BaseAgent as a, type
|
|
57
|
+
export { AgentError as A, type BaseAgentRunOptions as B, type GetAgentInput as G, type InternalAgentCallbackValue as I, type PublicAgentCallbackValue as P, BaseAgent as a, type AnyAgent as b, type AgentMeta as c, type AgentCallbackValue as d, type AgentCallback as e, type GetAgentOutput as f };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Run, GetRunContext } from './context.cjs';
|
|
1
|
+
import { MiddlewareType, Run, GetRunContext } from './context.cjs';
|
|
2
2
|
import { FrameworkError } from './errors.cjs';
|
|
3
3
|
import { Serializable } from './internals/serializable.cjs';
|
|
4
|
-
import { E as Emitter } from './emitter-
|
|
4
|
+
import { E as Emitter } from './emitter-jN55XZZq.cjs';
|
|
5
5
|
import { BaseMemory } from './memory/base.cjs';
|
|
6
6
|
import { OmitEmpty } from './internals/types.cjs';
|
|
7
7
|
import { AnyTool } from './tools/base.cjs';
|
|
@@ -39,6 +39,7 @@ interface BaseAgentRunOptions {
|
|
|
39
39
|
declare abstract class BaseAgent<TInput, TOutput, TOptions extends BaseAgentRunOptions = BaseAgentRunOptions> extends Serializable {
|
|
40
40
|
protected isRunning: boolean;
|
|
41
41
|
abstract readonly emitter: Emitter<unknown>;
|
|
42
|
+
readonly middlewares: MiddlewareType<typeof this>[];
|
|
42
43
|
run(...[input, options]: Partial<TOptions> extends TOptions ? [input: TInput, options?: TOptions] : [input: TInput, options: TOptions]): Run<TOutput, this, readonly [TInput, TOptions | undefined]>;
|
|
43
44
|
protected abstract _run(input: TInput, options: TOptions, run: GetRunContext<typeof this>): Promise<TOutput>;
|
|
44
45
|
destroy(): void;
|
|
@@ -48,8 +49,9 @@ declare abstract class BaseAgent<TInput, TOutput, TOptions extends BaseAgentRunO
|
|
|
48
49
|
createSnapshot(): {
|
|
49
50
|
isRunning: boolean;
|
|
50
51
|
emitter: Emitter<unknown>;
|
|
52
|
+
middlewares: MiddlewareType<any>[];
|
|
51
53
|
};
|
|
52
54
|
loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
|
-
export { AgentError as A, type BaseAgentRunOptions as B, type GetAgentInput as G, type InternalAgentCallbackValue as I, type PublicAgentCallbackValue as P, BaseAgent as a, type
|
|
57
|
+
export { AgentError as A, type BaseAgentRunOptions as B, type GetAgentInput as G, type InternalAgentCallbackValue as I, type PublicAgentCallbackValue as P, BaseAgent as a, type AnyAgent as b, type AgentMeta as c, type AgentCallbackValue as d, type AgentCallback as e, type GetAgentOutput as f };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Message, AssistantMessage, MessageContentPart } from './backend/message.cjs';
|
|
2
|
-
import * as ai from 'ai';
|
|
3
2
|
import { Run, GetRunContext } from './context.cjs';
|
|
4
3
|
import { Serializable } from './internals/serializable.cjs';
|
|
5
|
-
import { C as Callback, E as Emitter } from './emitter-
|
|
4
|
+
import { C as Callback, E as Emitter } from './emitter-jN55XZZq.cjs';
|
|
6
5
|
import { FrameworkError } from './errors.cjs';
|
|
7
6
|
import { Task } from 'promise-based-task';
|
|
8
7
|
import { BaseCache } from './cache/base.cjs';
|
|
@@ -13,6 +12,7 @@ import { ZodSchema, z, ZodType } from 'zod';
|
|
|
13
12
|
import { SchemaObject } from 'ajv';
|
|
14
13
|
import { PromptTemplate } from './template.cjs';
|
|
15
14
|
import { Logger } from './logger/logger.cjs';
|
|
15
|
+
import { ToolCallPart } from 'ai';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
@@ -39,6 +39,7 @@ interface ChatModelParameters {
|
|
|
39
39
|
presencePenalty?: number;
|
|
40
40
|
seed?: number;
|
|
41
41
|
stopSequences?: string[];
|
|
42
|
+
stream?: boolean;
|
|
42
43
|
}
|
|
43
44
|
interface ResponseObjectJson {
|
|
44
45
|
type: "object-json";
|
|
@@ -67,6 +68,7 @@ interface ChatModelInput extends ChatModelParameters {
|
|
|
67
68
|
responseFormat?: ZodSchema | ResponseObjectJson;
|
|
68
69
|
toolChoice?: ChatModelToolChoice;
|
|
69
70
|
messages: Message[];
|
|
71
|
+
streamPartialToolCalls?: boolean;
|
|
70
72
|
}
|
|
71
73
|
type ChatModelFinishReason = "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
|
|
72
74
|
interface ChatModelUsage {
|
|
@@ -113,11 +115,7 @@ declare abstract class ChatModel extends Serializable {
|
|
|
113
115
|
readonly modelSupportsToolCalling: boolean;
|
|
114
116
|
abstract get modelId(): string;
|
|
115
117
|
abstract get providerId(): string;
|
|
116
|
-
create(input: ChatModelInput
|
|
117
|
-
stream?: boolean;
|
|
118
|
-
}): Run<ChatModelOutput, this, readonly [ChatModelInput & {
|
|
119
|
-
stream?: boolean;
|
|
120
|
-
}]>;
|
|
118
|
+
create(input: ChatModelInput): Run<ChatModelOutput, this, readonly [ChatModelInput]>;
|
|
121
119
|
createStructure<T>(input: ChatModelObjectInput<T>): Run<ChatModelObjectOutput<T>, this, readonly [ChatModelObjectInput<T>]>;
|
|
122
120
|
config({ cache, parameters }: ChatConfig): void;
|
|
123
121
|
static fromName(name: FullModelName | ProviderName, options?: ChatModelParameters): Promise<ChatModel>;
|
|
@@ -150,7 +148,8 @@ declare class ChatModelOutput extends Serializable {
|
|
|
150
148
|
constructor(messages: Message[], usage?: ChatModelUsage | undefined, finishReason?: ChatModelFinishReason | undefined);
|
|
151
149
|
static fromChunks(chunks: ChatModelOutput[]): ChatModelOutput;
|
|
152
150
|
merge(other: ChatModelOutput): void;
|
|
153
|
-
|
|
151
|
+
dedupe(): void;
|
|
152
|
+
getToolCalls(): ToolCallPart[];
|
|
154
153
|
getTextMessages(): AssistantMessage[];
|
|
155
154
|
getTextContent(): string;
|
|
156
155
|
toString(): string;
|