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
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import { Middleware, RunContext } from '../context.js';
|
|
2
|
+
import { Emitter } from '../emitter/emitter.js';
|
|
3
|
+
import { FrameworkError } from '../errors.js';
|
|
4
|
+
import { Logger } from '../logger/logger.js';
|
|
5
|
+
import { BaseAgent } from '../agents/base.js';
|
|
6
|
+
import { capitalize } from 'remeda';
|
|
7
|
+
import { ChatModel } from '../backend/chat.js';
|
|
8
|
+
import { Tool } from '../tools/base.js';
|
|
9
|
+
import { Requirement } from '../agents/requirement/requirements/requirement.js';
|
|
10
|
+
import { Serializer } from '../serializer/serializer.js';
|
|
11
|
+
import { isPrimitive } from '../internals/helpers/guards.js';
|
|
12
|
+
import { getProp } from '../internals/helpers/object.js';
|
|
13
|
+
|
|
14
|
+
var __defProp = Object.defineProperty;
|
|
15
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
16
|
+
class GlobalTrajectoryMiddleware extends Middleware {
|
|
17
|
+
static {
|
|
18
|
+
__name(this, "GlobalTrajectoryMiddleware");
|
|
19
|
+
}
|
|
20
|
+
enabled;
|
|
21
|
+
included;
|
|
22
|
+
excluded;
|
|
23
|
+
cleanups = [];
|
|
24
|
+
target;
|
|
25
|
+
ctx = null;
|
|
26
|
+
pretty;
|
|
27
|
+
traceLevel = /* @__PURE__ */ new Map();
|
|
28
|
+
prefixByType;
|
|
29
|
+
matchNested;
|
|
30
|
+
emitterPriority;
|
|
31
|
+
formatter;
|
|
32
|
+
emitter;
|
|
33
|
+
constructor(options = {}) {
|
|
34
|
+
super();
|
|
35
|
+
this.enabled = options.enabled ?? true;
|
|
36
|
+
this.included = options.included ?? [];
|
|
37
|
+
this.excluded = options.excluded ?? [];
|
|
38
|
+
this.target = this.createTarget(options.target);
|
|
39
|
+
this.pretty = options.pretty ?? false;
|
|
40
|
+
this.matchNested = options.matchNested ?? true;
|
|
41
|
+
this.emitterPriority = options.emitterPriority ?? -1;
|
|
42
|
+
this.prefixByType = new Map([
|
|
43
|
+
[
|
|
44
|
+
BaseAgent,
|
|
45
|
+
"\u{1F916} "
|
|
46
|
+
],
|
|
47
|
+
[
|
|
48
|
+
ChatModel,
|
|
49
|
+
"\u{1F4AC} "
|
|
50
|
+
],
|
|
51
|
+
[
|
|
52
|
+
Tool,
|
|
53
|
+
"\u{1F6E0}\uFE0F "
|
|
54
|
+
],
|
|
55
|
+
[
|
|
56
|
+
Requirement,
|
|
57
|
+
"\u{1F50E} "
|
|
58
|
+
],
|
|
59
|
+
...options.prefixByType ? Array.from(options.prefixByType.entries()) : []
|
|
60
|
+
]);
|
|
61
|
+
this.formatter = options.formatter ?? ((x) => `${x.prefix}${x.className}[${x.instanceName || x.className}][${x.eventName}]`);
|
|
62
|
+
this.emitter = Emitter.root.child({
|
|
63
|
+
namespace: [
|
|
64
|
+
"middleware",
|
|
65
|
+
"globalTrajectory"
|
|
66
|
+
]
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Bind the middleware to a run context
|
|
71
|
+
*/
|
|
72
|
+
bind(ctx) {
|
|
73
|
+
while (this.cleanups.length > 0) {
|
|
74
|
+
this.cleanups.pop()();
|
|
75
|
+
}
|
|
76
|
+
this.traceLevel.clear();
|
|
77
|
+
this.traceLevel.set(ctx.runId, {
|
|
78
|
+
relative: 0,
|
|
79
|
+
absolute: 0
|
|
80
|
+
});
|
|
81
|
+
this.ctx = ctx;
|
|
82
|
+
this.bindEmitter(ctx.emitter);
|
|
83
|
+
}
|
|
84
|
+
createTarget(input) {
|
|
85
|
+
if (input === null || input === void 0) {
|
|
86
|
+
return (msg) => console.log(msg);
|
|
87
|
+
} else if (input instanceof Logger) {
|
|
88
|
+
return (msg) => input.debug(msg);
|
|
89
|
+
} else {
|
|
90
|
+
return input;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
bindEmitter(emitter) {
|
|
94
|
+
this.cleanups.push(emitter.match("*.*", (_, event) => this.logTraceId(event), {
|
|
95
|
+
matchNested: true
|
|
96
|
+
}));
|
|
97
|
+
const handleTopLevelEvent = /* @__PURE__ */ __name(async (data, meta) => {
|
|
98
|
+
if (!(meta.creator instanceof RunContext)) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (!meta.trace) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.logTraceId(meta);
|
|
105
|
+
if (!this.isAllowed(meta)) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (!this.enabled) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const eventName = capitalize(meta.name);
|
|
112
|
+
await this[`onInternal${eventName}`].call(this, data, meta);
|
|
113
|
+
}, "handleTopLevelEvent");
|
|
114
|
+
this.cleanups.push(emitter.match(matchInternalEvent([
|
|
115
|
+
"start",
|
|
116
|
+
"success",
|
|
117
|
+
"error",
|
|
118
|
+
"finish"
|
|
119
|
+
]), handleTopLevelEvent, {
|
|
120
|
+
matchNested: false,
|
|
121
|
+
isBlocking: true,
|
|
122
|
+
priority: this.emitterPriority
|
|
123
|
+
}));
|
|
124
|
+
if (this.matchNested) {
|
|
125
|
+
const handleNestedEvent = /* @__PURE__ */ __name(async (data, meta) => {
|
|
126
|
+
if (!(meta.creator instanceof RunContext)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (meta.creator.emitter !== emitter) {
|
|
130
|
+
await handleTopLevelEvent(data, meta);
|
|
131
|
+
this.bindEmitter(meta.creator.emitter);
|
|
132
|
+
}
|
|
133
|
+
}, "handleNestedEvent");
|
|
134
|
+
this.cleanups.push(emitter.match(matchInternalEvent([
|
|
135
|
+
"start"
|
|
136
|
+
]), handleNestedEvent, {
|
|
137
|
+
matchNested: true,
|
|
138
|
+
isBlocking: true,
|
|
139
|
+
priority: this.emitterPriority
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
logTraceId(meta) {
|
|
144
|
+
if (!meta.trace?.runId) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (this.traceLevel.has(meta.trace.runId)) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (meta.trace.parentRunId === meta.trace.runId) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (meta.trace.parentRunId) {
|
|
154
|
+
const allowed = this.isAllowed(meta);
|
|
155
|
+
const parentTrace = this.traceLevel.get(meta.trace.parentRunId) ?? {
|
|
156
|
+
relative: 0,
|
|
157
|
+
absolute: 0
|
|
158
|
+
};
|
|
159
|
+
this.traceLevel.set(meta.trace.runId, {
|
|
160
|
+
relative: parentTrace.relative + (allowed ? 1 : 0),
|
|
161
|
+
absolute: parentTrace.absolute + 1
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
isAllowed(meta) {
|
|
166
|
+
let target = meta.creator;
|
|
167
|
+
if (target instanceof RunContext) {
|
|
168
|
+
target = target.instance;
|
|
169
|
+
}
|
|
170
|
+
for (const excluded of this.excluded) {
|
|
171
|
+
if (target instanceof excluded) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (this.included.length === 0) {
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
return this.included.some((included) => target instanceof included);
|
|
179
|
+
}
|
|
180
|
+
extractName(meta) {
|
|
181
|
+
let target = meta.creator;
|
|
182
|
+
if (target instanceof RunContext) {
|
|
183
|
+
target = target.instance;
|
|
184
|
+
}
|
|
185
|
+
const className = target.constructor.name;
|
|
186
|
+
let targetName = null;
|
|
187
|
+
if (target instanceof BaseAgent && target.meta?.name) {
|
|
188
|
+
targetName = target.meta.name;
|
|
189
|
+
} else if ("name" in target && typeof target.name === "string") {
|
|
190
|
+
targetName = target.name;
|
|
191
|
+
}
|
|
192
|
+
let prefix = "";
|
|
193
|
+
for (const [type, typePrefix] of this.prefixByType.entries()) {
|
|
194
|
+
if (target instanceof type) {
|
|
195
|
+
prefix = typePrefix;
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const input = {
|
|
200
|
+
prefix,
|
|
201
|
+
className,
|
|
202
|
+
instanceName: targetName,
|
|
203
|
+
eventName: meta.name
|
|
204
|
+
};
|
|
205
|
+
return this.formatter(input);
|
|
206
|
+
}
|
|
207
|
+
formatPrefix(meta) {
|
|
208
|
+
if (!meta.trace) {
|
|
209
|
+
return "";
|
|
210
|
+
}
|
|
211
|
+
const indent = this.getTraceLevel(meta, "self").relative;
|
|
212
|
+
const indentParent = this.getTraceLevel(meta, "parent").relative;
|
|
213
|
+
const indentDiff = indent - indentParent;
|
|
214
|
+
let prefix = "";
|
|
215
|
+
prefix += " ".repeat(indentParent * 2);
|
|
216
|
+
if (meta.name !== "start" && indent) {
|
|
217
|
+
prefix += "<";
|
|
218
|
+
}
|
|
219
|
+
prefix += "--".repeat(indentDiff);
|
|
220
|
+
if (meta.name === "start" && prefix && indent) {
|
|
221
|
+
prefix += ">";
|
|
222
|
+
}
|
|
223
|
+
if (prefix) {
|
|
224
|
+
prefix = `${prefix} `;
|
|
225
|
+
}
|
|
226
|
+
const name = this.extractName(meta);
|
|
227
|
+
return `${prefix}${name}: `;
|
|
228
|
+
}
|
|
229
|
+
getTraceLevel(meta, type = "self") {
|
|
230
|
+
if (!meta.trace) {
|
|
231
|
+
return {
|
|
232
|
+
relative: 0,
|
|
233
|
+
absolute: 0
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
const runId = type === "parent" ? meta.trace.parentRunId || "" : meta.trace.runId;
|
|
237
|
+
return this.traceLevel.get(runId) ?? {
|
|
238
|
+
relative: 0,
|
|
239
|
+
absolute: 0
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
async formatPayload(value) {
|
|
243
|
+
if (isPrimitive(value)) {
|
|
244
|
+
return String(value);
|
|
245
|
+
}
|
|
246
|
+
if (value instanceof FrameworkError) {
|
|
247
|
+
return value.explain();
|
|
248
|
+
}
|
|
249
|
+
const serialized = await Serializer.serialize(value);
|
|
250
|
+
return JSON.stringify(await Serializer.deserialize(serialized, [], true), /* @__PURE__ */ (() => {
|
|
251
|
+
const excludedKeys = /* @__PURE__ */ new Set([
|
|
252
|
+
"emitter",
|
|
253
|
+
"cleanups",
|
|
254
|
+
"creator",
|
|
255
|
+
"listeners"
|
|
256
|
+
]);
|
|
257
|
+
return (key, value2) => {
|
|
258
|
+
if (excludedKeys.has(key)) {
|
|
259
|
+
return void 0;
|
|
260
|
+
}
|
|
261
|
+
if (value2 && value2 instanceof Tool) {
|
|
262
|
+
return value2.name;
|
|
263
|
+
}
|
|
264
|
+
return value2;
|
|
265
|
+
};
|
|
266
|
+
})(), this.pretty ? 2 : void 0);
|
|
267
|
+
}
|
|
268
|
+
async onInternalStart(payload, meta) {
|
|
269
|
+
const prefix = this.formatPrefix(meta);
|
|
270
|
+
const message = `${prefix}${await this.formatPayload(payload.input)}`;
|
|
271
|
+
await this.emitter.emit("start", {
|
|
272
|
+
message,
|
|
273
|
+
level: this.getTraceLevel(meta),
|
|
274
|
+
origin: [
|
|
275
|
+
payload,
|
|
276
|
+
meta
|
|
277
|
+
]
|
|
278
|
+
});
|
|
279
|
+
this.target(message);
|
|
280
|
+
}
|
|
281
|
+
async onInternalSuccess(payload, meta) {
|
|
282
|
+
const prefix = this.formatPrefix(meta);
|
|
283
|
+
const message = `${prefix}${await this.formatPayload(payload)}`;
|
|
284
|
+
await this.emitter.emit("success", {
|
|
285
|
+
message,
|
|
286
|
+
level: this.getTraceLevel(meta),
|
|
287
|
+
origin: [
|
|
288
|
+
payload,
|
|
289
|
+
meta
|
|
290
|
+
]
|
|
291
|
+
});
|
|
292
|
+
this.target(message);
|
|
293
|
+
}
|
|
294
|
+
async onInternalError(payload, meta) {
|
|
295
|
+
const prefix = this.formatPrefix(meta);
|
|
296
|
+
const message = `${prefix}${await this.formatPayload(payload)}`;
|
|
297
|
+
await this.emitter.emit("error", {
|
|
298
|
+
message,
|
|
299
|
+
level: this.getTraceLevel(meta),
|
|
300
|
+
origin: [
|
|
301
|
+
payload,
|
|
302
|
+
meta
|
|
303
|
+
]
|
|
304
|
+
});
|
|
305
|
+
this.target(message);
|
|
306
|
+
}
|
|
307
|
+
async onInternalFinish(payload, meta) {
|
|
308
|
+
const prefix = this.formatPrefix(meta);
|
|
309
|
+
const message = `${prefix}${await this.formatPayload(payload.error || payload.output)}`;
|
|
310
|
+
await this.emitter.emit("finish", {
|
|
311
|
+
message,
|
|
312
|
+
level: this.getTraceLevel(meta),
|
|
313
|
+
origin: [
|
|
314
|
+
payload,
|
|
315
|
+
meta
|
|
316
|
+
]
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
function matchInternalEvent(names) {
|
|
321
|
+
return (meta) => names.includes(meta.name) && getProp(meta.context, [
|
|
322
|
+
"internal"
|
|
323
|
+
], false);
|
|
324
|
+
}
|
|
325
|
+
__name(matchInternalEvent, "matchInternalEvent");
|
|
326
|
+
|
|
327
|
+
export { GlobalTrajectoryMiddleware };
|
|
328
|
+
//# sourceMappingURL=trajectory.js.map
|
|
329
|
+
//# sourceMappingURL=trajectory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/trajectory.ts"],"names":["GlobalTrajectoryMiddleware","Middleware","enabled","included","excluded","cleanups","target","ctx","pretty","traceLevel","Map","prefixByType","matchNested","emitterPriority","formatter","emitter","options","createTarget","BaseAgent","ChatModel","Tool","Requirement","Array","from","entries","x","prefix","className","instanceName","eventName","Emitter","root","child","namespace","bind","length","pop","clear","set","runId","relative","absolute","bindEmitter","input","undefined","msg","console","log","Logger","debug","push","match","_","event","logTraceId","handleTopLevelEvent","data","meta","creator","RunContext","trace","isAllowed","capitalize","name","call","matchInternalEvent","isBlocking","priority","handleNestedEvent","has","parentRunId","allowed","parentTrace","get","instance","some","extractName","targetName","type","typePrefix","formatPrefix","indent","getTraceLevel","indentParent","indentDiff","repeat","formatPayload","value","isPrimitive","String","FrameworkError","explain","serialized","Serializer","serialize","JSON","stringify","deserialize","excludedKeys","Set","key","onInternalStart","payload","message","emit","level","origin","onInternalSuccess","onInternalError","onInternalFinish","error","output","names","includes","getProp","context"],"mappings":"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","file":"trajectory.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Middleware, RunContext, RunContextCallbacks, RunInstance } from \"@/context.js\";\nimport { Callback, Emitter, EventMeta } from \"@/emitter/emitter.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Logger } from \"@/logger/logger.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport type { AnyConstructable } from \"@/internals/types.js\";\nimport { capitalize } from \"remeda\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { Tool } from \"@/tools/base.js\";\nimport { Requirement } from \"@/agents/requirement/requirements/requirement.js\";\nimport type { InferCallbackValue } from \"@/emitter/types.js\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { isPrimitive } from \"@/internals/helpers/guards.js\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\n/**\n * Information about how deep the given entity is in the execution tree.\n */\nexport interface TraceLevel {\n /** Relative depth to the included (observed) elements */\n relative: number;\n /** Absolute depth from the root */\n absolute: number;\n}\n\n/**\n * Input for custom formatter function\n */\nexport interface GlobalTrajectoryMiddlewareFormatterInput {\n prefix: string;\n className: string;\n eventName: string;\n instanceName: string | null;\n}\n\nexport interface GlobalTrajectoryMiddlewareCallbacks {\n start: Callback<{\n message: string;\n level: TraceLevel;\n origin: [InferCallbackValue<RunContextCallbacks[\"start\"]>, EventMeta];\n }>;\n success: Callback<{\n message: string;\n level: TraceLevel;\n origin: [InferCallbackValue<RunContextCallbacks[\"success\"]>, EventMeta];\n }>;\n error: Callback<{\n message: string;\n level: TraceLevel;\n origin: [InferCallbackValue<RunContextCallbacks[\"error\"]>, EventMeta];\n }>;\n finish: Callback<{\n message: string;\n level: TraceLevel;\n origin: [InferCallbackValue<RunContextCallbacks[\"finish\"]>, EventMeta];\n }>;\n}\n\ntype OutputTargetFn = (message: string) => void;\ntype OutputTarget = Logger | OutputTargetFn;\n\nexport interface GlobalTrajectoryMiddlewareOptions {\n /** Specify output target: 'console', Logger instance, custom function, or null to disable */\n target?: OutputTarget;\n /** List of classes to include in the trajectory */\n included?: AnyConstructable[];\n /** List of classes to exclude from the trajectory */\n excluded?: AnyConstructable[];\n /** Use pretty formatting for the trajectory */\n pretty?: boolean;\n /** Customize how instances of individual classes should be printed */\n prefixByType?: Map<AnyConstructable, string>;\n /** Enable/Disable the logging */\n enabled?: boolean;\n /** Whether to observe trajectories of nested run contexts */\n matchNested?: boolean;\n /** Defines a priority for registered events */\n emitterPriority?: number;\n /** Custom formatter function */\n formatter?: (input: GlobalTrajectoryMiddlewareFormatterInput) => string;\n}\n\n/**\n * Middleware for capturing and logging execution flow of agents, tools, and models.\n * Provides hierarchical visualization with indentation to show the call stack.\n */\nexport class GlobalTrajectoryMiddleware<T extends RunInstance = any> extends Middleware<T> {\n protected enabled: boolean;\n protected included: AnyConstructable[];\n protected excluded: AnyConstructable[];\n protected cleanups: (() => void)[] = [];\n protected target: (message: string) => void;\n protected ctx: RunContext<T> | null = null;\n protected pretty: boolean;\n protected traceLevel = new Map<string, TraceLevel>();\n protected prefixByType: Map<any, string>;\n protected matchNested: boolean;\n protected emitterPriority: number;\n protected formatter: (input: GlobalTrajectoryMiddlewareFormatterInput) => string;\n public readonly emitter: Emitter<GlobalTrajectoryMiddlewareCallbacks>;\n\n constructor(options: GlobalTrajectoryMiddlewareOptions = {}) {\n super();\n\n this.enabled = options.enabled ?? true;\n this.included = options.included ?? [];\n this.excluded = options.excluded ?? [];\n this.target = this.createTarget(options.target);\n this.pretty = options.pretty ?? false;\n this.matchNested = options.matchNested ?? true;\n this.emitterPriority = options.emitterPriority ?? -1; // run later\n\n // Default prefixes\n this.prefixByType = new Map([\n [BaseAgent, \"🤖 \"],\n [ChatModel, \"💬 \"],\n [Tool, \"🛠️ \"],\n [Requirement, \"🔎 \"],\n ...((options.prefixByType ? Array.from(options.prefixByType.entries()) : []) as any),\n ]);\n\n this.formatter =\n options.formatter ??\n ((x) => `${x.prefix}${x.className}[${x.instanceName || x.className}][${x.eventName}]`);\n\n this.emitter = Emitter.root.child<GlobalTrajectoryMiddlewareCallbacks>({\n namespace: [\"middleware\", \"globalTrajectory\"],\n });\n }\n\n /**\n * Bind the middleware to a run context\n */\n bind(ctx: RunContext<T>): void {\n // Cleanup previous bindings\n while (this.cleanups.length > 0) {\n this.cleanups.pop()!();\n }\n\n this.traceLevel.clear();\n this.traceLevel.set(ctx.runId, { relative: 0, absolute: 0 });\n this.ctx = ctx;\n\n this.bindEmitter(ctx.emitter);\n }\n\n private createTarget(input?: OutputTarget): OutputTargetFn {\n if (input === null || input === undefined) {\n // eslint-disable-next-line no-console\n return (msg) => console.log(msg);\n } else if (input instanceof Logger) {\n return (msg) => input.debug(msg);\n } else {\n return input;\n }\n }\n\n private bindEmitter(emitter: Emitter<any>): void {\n // Track all events for trace ID logging\n this.cleanups.push(\n emitter.match(\"*.*\", (_, event) => this.logTraceId(event), {\n matchNested: true,\n }),\n );\n\n // Handle top-level events\n const handleTopLevelEvent = async (data: any, meta: EventMeta) => {\n if (!(meta.creator instanceof RunContext)) {\n return;\n }\n if (!meta.trace) {\n return;\n }\n\n this.logTraceId(meta);\n if (!this.isAllowed(meta)) {\n return;\n }\n if (!this.enabled) {\n return;\n }\n\n const eventName = capitalize(meta.name) as \"Start\" | \"Success\" | \"Error\" | \"Finish\";\n await this[`onInternal${eventName}` as const].call(this, data, meta);\n };\n\n this.cleanups.push(\n emitter.match(\n matchInternalEvent([\"start\", \"success\", \"error\", \"finish\"]),\n handleTopLevelEvent,\n {\n matchNested: false,\n isBlocking: true,\n priority: this.emitterPriority,\n },\n ),\n );\n\n // Handle nested events if enabled\n if (this.matchNested) {\n const handleNestedEvent = async (data: any, meta: EventMeta) => {\n if (!(meta.creator instanceof RunContext)) {\n return;\n }\n if (meta.creator.emitter !== emitter) {\n await handleTopLevelEvent(data, meta);\n this.bindEmitter(meta.creator.emitter);\n }\n };\n\n this.cleanups.push(\n emitter.match(matchInternalEvent([\"start\"]), handleNestedEvent, {\n matchNested: true,\n isBlocking: true,\n priority: this.emitterPriority,\n }),\n );\n }\n }\n\n private logTraceId(meta: EventMeta): void {\n if (!meta.trace?.runId) {\n return;\n }\n if (this.traceLevel.has(meta.trace.runId)) {\n return;\n }\n if (meta.trace.parentRunId === meta.trace.runId) {\n return;\n }\n\n if (meta.trace.parentRunId) {\n const allowed = this.isAllowed(meta);\n const parentTrace = this.traceLevel.get(meta.trace.parentRunId) ?? {\n relative: 0,\n absolute: 0,\n };\n this.traceLevel.set(meta.trace.runId, {\n relative: parentTrace.relative + (allowed ? 1 : 0),\n absolute: parentTrace.absolute + 1,\n });\n }\n }\n\n private isAllowed(meta: EventMeta): boolean {\n let target: any = meta.creator;\n if (target instanceof RunContext) {\n target = target.instance;\n }\n\n for (const excluded of this.excluded) {\n if (target instanceof excluded) {\n return false;\n }\n }\n\n if (this.included.length === 0) {\n return true;\n }\n\n return this.included.some((included) => target instanceof included);\n }\n\n private extractName(meta: EventMeta): string {\n let target: any = meta.creator;\n if (target instanceof RunContext) {\n target = target.instance;\n }\n\n const className = target.constructor.name;\n let targetName: string | null = null;\n\n if (target instanceof BaseAgent && target.meta?.name) {\n targetName = target.meta.name;\n } else if (\"name\" in target && typeof target.name === \"string\") {\n targetName = target.name;\n }\n\n let prefix = \"\";\n for (const [type, typePrefix] of this.prefixByType.entries()) {\n if (target instanceof type) {\n prefix = typePrefix;\n break;\n }\n }\n\n const input: GlobalTrajectoryMiddlewareFormatterInput = {\n prefix,\n className,\n instanceName: targetName,\n eventName: meta.name,\n };\n\n return this.formatter(input);\n }\n\n private formatPrefix(meta: EventMeta): string {\n if (!meta.trace) {\n return \"\";\n }\n\n const indent = this.getTraceLevel(meta, \"self\").relative;\n const indentParent = this.getTraceLevel(meta, \"parent\").relative;\n const indentDiff = indent - indentParent;\n\n let prefix = \"\";\n prefix += \" \".repeat(indentParent * 2);\n\n if (meta.name !== \"start\" && indent) {\n prefix += \"<\";\n }\n\n prefix += \"--\".repeat(indentDiff);\n\n if (meta.name === \"start\" && prefix && indent) {\n prefix += \">\";\n }\n\n if (prefix) {\n prefix = `${prefix} `;\n }\n\n const name = this.extractName(meta);\n return `${prefix}${name}: `;\n }\n\n private getTraceLevel(meta: EventMeta, type: \"self\" | \"parent\" = \"self\"): TraceLevel {\n if (!meta.trace) {\n return { relative: 0, absolute: 0 };\n }\n\n const runId = type === \"parent\" ? meta.trace.parentRunId || \"\" : meta.trace.runId;\n return this.traceLevel.get(runId) ?? { relative: 0, absolute: 0 };\n }\n\n private async formatPayload(value: any): Promise<string> {\n if (isPrimitive(value)) {\n return String(value);\n }\n\n if (value instanceof FrameworkError) {\n return value.explain();\n }\n\n const serialized = await Serializer.serialize(value);\n return JSON.stringify(\n await Serializer.deserialize(serialized, [], true),\n (() => {\n const excludedKeys = new Set([\"emitter\", \"cleanups\", \"creator\", \"listeners\"]);\n return (key, value) => {\n if (excludedKeys.has(key)) {\n return undefined;\n }\n if (value && value instanceof Tool) {\n return value.name;\n }\n return value;\n };\n })(),\n this.pretty ? 2 : undefined,\n );\n }\n\n private async onInternalStart(\n payload: InferCallbackValue<RunContextCallbacks[\"start\"]>,\n meta: EventMeta,\n ): Promise<void> {\n const prefix = this.formatPrefix(meta);\n const message = `${prefix}${await this.formatPayload(payload.input)}`;\n\n await this.emitter.emit(\"start\", {\n message,\n level: this.getTraceLevel(meta),\n origin: [payload, meta],\n });\n\n this.target(message);\n }\n\n private async onInternalSuccess(\n payload: InferCallbackValue<RunContextCallbacks[\"success\"]>,\n meta: EventMeta,\n ): Promise<void> {\n const prefix = this.formatPrefix(meta);\n // TODO: change to payload.output once available\n const message = `${prefix}${await this.formatPayload(payload)}`;\n\n await this.emitter.emit(\"success\", {\n message,\n level: this.getTraceLevel(meta),\n origin: [payload, meta],\n });\n\n this.target(message);\n }\n\n private async onInternalError(\n payload: InferCallbackValue<RunContextCallbacks[\"error\"]>,\n meta: EventMeta,\n ): Promise<void> {\n const prefix = this.formatPrefix(meta);\n const message = `${prefix}${await this.formatPayload(payload)}`;\n\n await this.emitter.emit(\"error\", {\n message,\n level: this.getTraceLevel(meta),\n origin: [payload, meta],\n });\n\n this.target(message);\n }\n\n private async onInternalFinish(\n payload: InferCallbackValue<RunContextCallbacks[\"finish\"]>,\n meta: EventMeta,\n ): Promise<void> {\n const prefix = this.formatPrefix(meta);\n const message = `${prefix}${await this.formatPayload(payload.error || payload.output)}`;\n await this.emitter.emit(\"finish\", {\n message,\n level: this.getTraceLevel(meta),\n origin: [payload, meta],\n });\n }\n}\n\nfunction matchInternalEvent(names: (keyof RunContextCallbacks)[]) {\n return (meta: EventMeta): boolean =>\n names.includes(meta.name as keyof RunContextCallbacks) &&\n getProp(meta.context, [\"internal\"], false);\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as node_modules_remeda_dist_ToString_DKW_jYvM_js from 'node_modules/remeda/dist/ToString-DKW-jYvM.js';
|
|
2
|
-
import { E as Emitter, C as Callback, I as InferCallbackValue } from '../emitter-
|
|
2
|
+
import { E as Emitter, C as Callback, I as InferCallbackValue } from '../emitter-jN55XZZq.cjs';
|
|
3
3
|
import { Serializable } from '../internals/serializable.cjs';
|
|
4
4
|
import { ParserField } from './field.cjs';
|
|
5
5
|
import { ValueOf } from '../internals/types.cjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as node_modules_remeda_dist_ToString_DKW_jYvM_js from 'node_modules/remeda/dist/ToString-DKW-jYvM.js';
|
|
2
|
-
import { E as Emitter, C as Callback, I as InferCallbackValue } from '../emitter-
|
|
2
|
+
import { E as Emitter, C as Callback, I as InferCallbackValue } from '../emitter-36-9MnvA.js';
|
|
3
3
|
import { Serializable } from '../internals/serializable.js';
|
|
4
4
|
import { ParserField } from './field.js';
|
|
5
5
|
import { ValueOf } from '../internals/types.js';
|
|
@@ -191,7 +191,8 @@ class Serializer {
|
|
|
191
191
|
return output.toJSON();
|
|
192
192
|
}
|
|
193
193
|
/** @internal */
|
|
194
|
-
static async deserializeWithMeta(raw, extraClasses) {
|
|
194
|
+
static async deserializeWithMeta(raw, extraClasses, keepPlain) {
|
|
195
|
+
keepPlain = keepPlain ?? false;
|
|
195
196
|
extraClasses?.forEach((ref) => Serializer.registerSerializable(ref));
|
|
196
197
|
const output = Serializer._createOutputBuilder();
|
|
197
198
|
const instances = /* @__PURE__ */ new Map();
|
|
@@ -224,7 +225,7 @@ class Serializer {
|
|
|
224
225
|
const placeholder = new utils_cjs.RefPlaceholder(contentRaw, factory);
|
|
225
226
|
instances.set(contentRaw.__ref, placeholder);
|
|
226
227
|
await traverseNested();
|
|
227
|
-
const final = await placeholder.final();
|
|
228
|
+
const final = keepPlain ? placeholder.rawValue : await placeholder.final();
|
|
228
229
|
instances.set(contentRaw.__ref, final);
|
|
229
230
|
return final;
|
|
230
231
|
}
|
|
@@ -239,8 +240,8 @@ class Serializer {
|
|
|
239
240
|
}, (_obj) => utils_cjs.isSerializerNode(_obj));
|
|
240
241
|
return output.get();
|
|
241
242
|
}
|
|
242
|
-
static async deserialize(raw, extraClasses) {
|
|
243
|
-
const response = await Serializer.deserializeWithMeta(raw, extraClasses);
|
|
243
|
+
static async deserialize(raw, extraClasses, keepPlain) {
|
|
244
|
+
const response = await Serializer.deserializeWithMeta(raw, extraClasses, keepPlain);
|
|
244
245
|
return response.__root;
|
|
245
246
|
}
|
|
246
247
|
static _createOutputBuilder() {
|