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,107 @@
|
|
|
1
|
+
import * as zod from 'zod';
|
|
2
|
+
import { PromptTemplate } from '../../template.cjs';
|
|
3
|
+
import '../../errors.cjs';
|
|
4
|
+
import '../../internals/types.cjs';
|
|
5
|
+
import '../../internals/helpers/guards.cjs';
|
|
6
|
+
import '../../internals/serializable.cjs';
|
|
7
|
+
import 'ajv';
|
|
8
|
+
|
|
9
|
+
declare const RequirementAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
10
|
+
role: zod.ZodOptional<zod.ZodString>;
|
|
11
|
+
instructions: zod.ZodOptional<zod.ZodString>;
|
|
12
|
+
notes: zod.ZodOptional<zod.ZodString>;
|
|
13
|
+
finalAnswerName: zod.ZodString;
|
|
14
|
+
finalAnswerSchema: zod.ZodOptional<zod.ZodString>;
|
|
15
|
+
finalAnswerInstructions: zod.ZodOptional<zod.ZodString>;
|
|
16
|
+
tools: zod.ZodArray<zod.ZodObject<{
|
|
17
|
+
name: zod.ZodString;
|
|
18
|
+
description: zod.ZodString;
|
|
19
|
+
inputSchema: zod.ZodString;
|
|
20
|
+
allowed: zod.ZodString;
|
|
21
|
+
reason: zod.ZodOptional<zod.ZodString>;
|
|
22
|
+
}, "strip", zod.ZodTypeAny, {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
inputSchema: string;
|
|
26
|
+
allowed: string;
|
|
27
|
+
reason?: string | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
inputSchema: string;
|
|
32
|
+
allowed: string;
|
|
33
|
+
reason?: string | undefined;
|
|
34
|
+
}>, "many">;
|
|
35
|
+
}, "strip", zod.ZodTypeAny, {
|
|
36
|
+
finalAnswerName: string;
|
|
37
|
+
tools: {
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
inputSchema: string;
|
|
41
|
+
allowed: string;
|
|
42
|
+
reason?: string | undefined;
|
|
43
|
+
}[];
|
|
44
|
+
role?: string | undefined;
|
|
45
|
+
instructions?: string | undefined;
|
|
46
|
+
notes?: string | undefined;
|
|
47
|
+
finalAnswerSchema?: string | undefined;
|
|
48
|
+
finalAnswerInstructions?: string | undefined;
|
|
49
|
+
}, {
|
|
50
|
+
finalAnswerName: string;
|
|
51
|
+
tools: {
|
|
52
|
+
name: string;
|
|
53
|
+
description: string;
|
|
54
|
+
inputSchema: string;
|
|
55
|
+
allowed: string;
|
|
56
|
+
reason?: string | undefined;
|
|
57
|
+
}[];
|
|
58
|
+
role?: string | undefined;
|
|
59
|
+
instructions?: string | undefined;
|
|
60
|
+
notes?: string | undefined;
|
|
61
|
+
finalAnswerSchema?: string | undefined;
|
|
62
|
+
finalAnswerInstructions?: string | undefined;
|
|
63
|
+
}>>;
|
|
64
|
+
declare const RequirementAgentTaskPrompt: PromptTemplate<zod.ZodObject<{
|
|
65
|
+
prompt: zod.ZodString;
|
|
66
|
+
context: zod.ZodOptional<zod.ZodString>;
|
|
67
|
+
expectedOutput: zod.ZodOptional<zod.ZodString>;
|
|
68
|
+
}, "strip", zod.ZodTypeAny, {
|
|
69
|
+
prompt: string;
|
|
70
|
+
context?: string | undefined;
|
|
71
|
+
expectedOutput?: string | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
prompt: string;
|
|
74
|
+
context?: string | undefined;
|
|
75
|
+
expectedOutput?: string | undefined;
|
|
76
|
+
}>>;
|
|
77
|
+
declare const RequirementAgentToolErrorPrompt: PromptTemplate<zod.ZodObject<{
|
|
78
|
+
reason: zod.ZodString;
|
|
79
|
+
}, "strip", zod.ZodTypeAny, {
|
|
80
|
+
reason: string;
|
|
81
|
+
}, {
|
|
82
|
+
reason: string;
|
|
83
|
+
}>>;
|
|
84
|
+
declare const RequirementAgentToolNoResultPrompt: PromptTemplate<zod.ZodObject<{
|
|
85
|
+
toolCall: zod.ZodObject<{
|
|
86
|
+
tool: zod.ZodOptional<zod.ZodAny>;
|
|
87
|
+
input: zod.ZodUnknown;
|
|
88
|
+
}, "strip", zod.ZodTypeAny, {
|
|
89
|
+
tool?: any;
|
|
90
|
+
input?: unknown;
|
|
91
|
+
}, {
|
|
92
|
+
tool?: any;
|
|
93
|
+
input?: unknown;
|
|
94
|
+
}>;
|
|
95
|
+
}, "strip", zod.ZodTypeAny, {
|
|
96
|
+
toolCall: {
|
|
97
|
+
tool?: any;
|
|
98
|
+
input?: unknown;
|
|
99
|
+
};
|
|
100
|
+
}, {
|
|
101
|
+
toolCall: {
|
|
102
|
+
tool?: any;
|
|
103
|
+
input?: unknown;
|
|
104
|
+
};
|
|
105
|
+
}>>;
|
|
106
|
+
|
|
107
|
+
export { RequirementAgentSystemPrompt, RequirementAgentTaskPrompt, RequirementAgentToolErrorPrompt, RequirementAgentToolNoResultPrompt };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import * as zod from 'zod';
|
|
2
|
+
import { PromptTemplate } from '../../template.js';
|
|
3
|
+
import '../../errors.js';
|
|
4
|
+
import '../../internals/types.js';
|
|
5
|
+
import '../../internals/helpers/guards.js';
|
|
6
|
+
import '../../internals/serializable.js';
|
|
7
|
+
import 'ajv';
|
|
8
|
+
|
|
9
|
+
declare const RequirementAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
10
|
+
role: zod.ZodOptional<zod.ZodString>;
|
|
11
|
+
instructions: zod.ZodOptional<zod.ZodString>;
|
|
12
|
+
notes: zod.ZodOptional<zod.ZodString>;
|
|
13
|
+
finalAnswerName: zod.ZodString;
|
|
14
|
+
finalAnswerSchema: zod.ZodOptional<zod.ZodString>;
|
|
15
|
+
finalAnswerInstructions: zod.ZodOptional<zod.ZodString>;
|
|
16
|
+
tools: zod.ZodArray<zod.ZodObject<{
|
|
17
|
+
name: zod.ZodString;
|
|
18
|
+
description: zod.ZodString;
|
|
19
|
+
inputSchema: zod.ZodString;
|
|
20
|
+
allowed: zod.ZodString;
|
|
21
|
+
reason: zod.ZodOptional<zod.ZodString>;
|
|
22
|
+
}, "strip", zod.ZodTypeAny, {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
inputSchema: string;
|
|
26
|
+
allowed: string;
|
|
27
|
+
reason?: string | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
inputSchema: string;
|
|
32
|
+
allowed: string;
|
|
33
|
+
reason?: string | undefined;
|
|
34
|
+
}>, "many">;
|
|
35
|
+
}, "strip", zod.ZodTypeAny, {
|
|
36
|
+
finalAnswerName: string;
|
|
37
|
+
tools: {
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
inputSchema: string;
|
|
41
|
+
allowed: string;
|
|
42
|
+
reason?: string | undefined;
|
|
43
|
+
}[];
|
|
44
|
+
role?: string | undefined;
|
|
45
|
+
instructions?: string | undefined;
|
|
46
|
+
notes?: string | undefined;
|
|
47
|
+
finalAnswerSchema?: string | undefined;
|
|
48
|
+
finalAnswerInstructions?: string | undefined;
|
|
49
|
+
}, {
|
|
50
|
+
finalAnswerName: string;
|
|
51
|
+
tools: {
|
|
52
|
+
name: string;
|
|
53
|
+
description: string;
|
|
54
|
+
inputSchema: string;
|
|
55
|
+
allowed: string;
|
|
56
|
+
reason?: string | undefined;
|
|
57
|
+
}[];
|
|
58
|
+
role?: string | undefined;
|
|
59
|
+
instructions?: string | undefined;
|
|
60
|
+
notes?: string | undefined;
|
|
61
|
+
finalAnswerSchema?: string | undefined;
|
|
62
|
+
finalAnswerInstructions?: string | undefined;
|
|
63
|
+
}>>;
|
|
64
|
+
declare const RequirementAgentTaskPrompt: PromptTemplate<zod.ZodObject<{
|
|
65
|
+
prompt: zod.ZodString;
|
|
66
|
+
context: zod.ZodOptional<zod.ZodString>;
|
|
67
|
+
expectedOutput: zod.ZodOptional<zod.ZodString>;
|
|
68
|
+
}, "strip", zod.ZodTypeAny, {
|
|
69
|
+
prompt: string;
|
|
70
|
+
context?: string | undefined;
|
|
71
|
+
expectedOutput?: string | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
prompt: string;
|
|
74
|
+
context?: string | undefined;
|
|
75
|
+
expectedOutput?: string | undefined;
|
|
76
|
+
}>>;
|
|
77
|
+
declare const RequirementAgentToolErrorPrompt: PromptTemplate<zod.ZodObject<{
|
|
78
|
+
reason: zod.ZodString;
|
|
79
|
+
}, "strip", zod.ZodTypeAny, {
|
|
80
|
+
reason: string;
|
|
81
|
+
}, {
|
|
82
|
+
reason: string;
|
|
83
|
+
}>>;
|
|
84
|
+
declare const RequirementAgentToolNoResultPrompt: PromptTemplate<zod.ZodObject<{
|
|
85
|
+
toolCall: zod.ZodObject<{
|
|
86
|
+
tool: zod.ZodOptional<zod.ZodAny>;
|
|
87
|
+
input: zod.ZodUnknown;
|
|
88
|
+
}, "strip", zod.ZodTypeAny, {
|
|
89
|
+
tool?: any;
|
|
90
|
+
input?: unknown;
|
|
91
|
+
}, {
|
|
92
|
+
tool?: any;
|
|
93
|
+
input?: unknown;
|
|
94
|
+
}>;
|
|
95
|
+
}, "strip", zod.ZodTypeAny, {
|
|
96
|
+
toolCall: {
|
|
97
|
+
tool?: any;
|
|
98
|
+
input?: unknown;
|
|
99
|
+
};
|
|
100
|
+
}, {
|
|
101
|
+
toolCall: {
|
|
102
|
+
tool?: any;
|
|
103
|
+
input?: unknown;
|
|
104
|
+
};
|
|
105
|
+
}>>;
|
|
106
|
+
|
|
107
|
+
export { RequirementAgentSystemPrompt, RequirementAgentTaskPrompt, RequirementAgentToolErrorPrompt, RequirementAgentToolNoResultPrompt };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { PromptTemplate } from '../../template.js';
|
|
2
|
+
import { RequirementAgentSystemPromptInputSchema, RequirementAgentTaskPromptInputSchema, RequirementAgentToolErrorPromptInputSchema, RequirementAgentToolNoResultPromptInputSchema } from './types.js';
|
|
3
|
+
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
const RequirementAgentSystemPrompt = new PromptTemplate({
|
|
7
|
+
schema: RequirementAgentSystemPromptInputSchema,
|
|
8
|
+
template: `# Role
|
|
9
|
+
Assume the role of {{role}}.
|
|
10
|
+
|
|
11
|
+
# Instructions
|
|
12
|
+
{{#instructions}}
|
|
13
|
+
{{{.}}}
|
|
14
|
+
{{/instructions}}
|
|
15
|
+
When the user sends a message, figure out a solution and provide a final answer to the user by calling the '{{finalAnswerName}}' tool.
|
|
16
|
+
{{#finalAnswerSchema}}
|
|
17
|
+
The final answer must fulfill the following.
|
|
18
|
+
|
|
19
|
+
\`\`\`
|
|
20
|
+
{{{finalAnswerSchema}}}
|
|
21
|
+
\`\`\`
|
|
22
|
+
{{/finalAnswerSchema}}
|
|
23
|
+
{{#finalAnswerInstructions}}
|
|
24
|
+
{{{finalAnswerInstructions}}}
|
|
25
|
+
{{/finalAnswerInstructions}}
|
|
26
|
+
|
|
27
|
+
IMPORTANT: The facts mentioned in the final answer must be backed by evidence provided by relevant tool outputs.
|
|
28
|
+
|
|
29
|
+
# Tools
|
|
30
|
+
You must use a tool to retrieve factual or historical information.
|
|
31
|
+
Never use the tool twice with the same input if not stated otherwise.
|
|
32
|
+
|
|
33
|
+
{{#tools.0}}
|
|
34
|
+
{{#tools}}
|
|
35
|
+
Name: {{name}}
|
|
36
|
+
Description: {{description}}
|
|
37
|
+
Allowed: {{allowed}}{{#reason}}
|
|
38
|
+
Reason: {{{.}}}{{/reason}}
|
|
39
|
+
|
|
40
|
+
{{/tools}}
|
|
41
|
+
{{/tools.0}}
|
|
42
|
+
|
|
43
|
+
# Notes
|
|
44
|
+
- Use markdown syntax to format code snippets, links, JSON, tables, images, and files.
|
|
45
|
+
- If the provided task is unclear, ask the user for clarification.
|
|
46
|
+
- Do not refer to tools or tool outputs by name when responding.
|
|
47
|
+
- Always take it one step at a time. Don't try to do multiple things at once.
|
|
48
|
+
- When the tool doesn't give you what you were asking for, you must either use another tool or a different tool input.
|
|
49
|
+
- You should always try a few different approaches before declaring the problem unsolvable.
|
|
50
|
+
- If you can't fully answer the user's question, answer partially and describe what you couldn't achieve.
|
|
51
|
+
- You cannot do complex calculations, computations, or data manipulations without using tools.
|
|
52
|
+
- The current date and time is: {{formatDate}}
|
|
53
|
+
{{#notes}}
|
|
54
|
+
{{{.}}}
|
|
55
|
+
{{/notes}}`,
|
|
56
|
+
defaults: {
|
|
57
|
+
role: "a helpful AI assistant",
|
|
58
|
+
instructions: ""
|
|
59
|
+
},
|
|
60
|
+
functions: {
|
|
61
|
+
formatDate: /* @__PURE__ */ __name(() => (/* @__PURE__ */ new Date()).toISOString().split("T")[0], "formatDate")
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const RequirementAgentTaskPrompt = new PromptTemplate({
|
|
65
|
+
schema: RequirementAgentTaskPromptInputSchema,
|
|
66
|
+
template: `{{#context}}This is the context relevant to the task:
|
|
67
|
+
{{{.}}}
|
|
68
|
+
|
|
69
|
+
{{/context}}
|
|
70
|
+
{{#expectedOutput}}
|
|
71
|
+
This is the expected criteria for your output:
|
|
72
|
+
{{.}}
|
|
73
|
+
|
|
74
|
+
{{/expectedOutput}}
|
|
75
|
+
Your task: {{prompt}}`
|
|
76
|
+
});
|
|
77
|
+
const RequirementAgentToolErrorPrompt = new PromptTemplate({
|
|
78
|
+
schema: RequirementAgentToolErrorPromptInputSchema,
|
|
79
|
+
template: `The tool has failed; the error log is shown below. If the tool cannot accomplish what you want, use a different tool or explain why you can't use it.
|
|
80
|
+
|
|
81
|
+
{{{reason}}}`
|
|
82
|
+
});
|
|
83
|
+
const RequirementAgentToolNoResultPrompt = new PromptTemplate({
|
|
84
|
+
schema: RequirementAgentToolNoResultPromptInputSchema,
|
|
85
|
+
template: `No results were found! Try to reformulate your query or use a different tool.`
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
export { RequirementAgentSystemPrompt, RequirementAgentTaskPrompt, RequirementAgentToolErrorPrompt, RequirementAgentToolNoResultPrompt };
|
|
89
|
+
//# sourceMappingURL=prompts.js.map
|
|
90
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/agents/requirement/prompts.ts"],"names":["RequirementAgentSystemPrompt","PromptTemplate","schema","RequirementAgentSystemPromptInputSchema","template","defaults","role","instructions","functions","formatDate","Date","toISOString","split","RequirementAgentTaskPrompt","RequirementAgentTaskPromptInputSchema","RequirementAgentToolErrorPrompt","RequirementAgentToolErrorPromptInputSchema","RequirementAgentToolNoResultPrompt","RequirementAgentToolNoResultPromptInputSchema"],"mappings":";;;;;AAaO,MAAMA,4BAAAA,GAA+B,IAAIC,cAAAA,CAAe;EAC7DC,MAAAA,EAAQC,uCAAAA;EACRC,QAAAA,EAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDVC,QAAAA,EAAU;IACRC,IAAAA,EAAM,wBAAA;IACNC,YAAAA,EAAc;AAChB,GAAA;EACAC,SAAAA,EAAW;IACTC,UAAAA,kBAAY,MAAA,CAAA,MAAA,iBAAM,IAAIC,IAAAA,EAAAA,EAAOC,WAAAA,GAAcC,KAAAA,CAAM,GAAA,CAAA,CAAK,CAAA,CAAA,EAA1C,YAAA;AACd;AACF,CAAA;AAEO,MAAMC,0BAAAA,GAA6B,IAAIZ,cAAAA,CAAe;EAC3DC,MAAAA,EAAQY,qCAAAA;EACRV,QAAAA,EAAU,CAAA;;;;;;;;;;AAUZ,CAAA;AAEO,MAAMW,+BAAAA,GAAkC,IAAId,cAAAA,CAAe;EAChEC,MAAAA,EAAQc,0CAAAA;EACRZ,QAAAA,EAAU,CAAA;;;AAGZ,CAAA;AAEO,MAAMa,kCAAAA,GAAqC,IAAIhB,cAAAA,CAAe;EACnEC,MAAAA,EAAQgB,6CAAAA;EACRd,QAAAA,EAAU,CAAA,6EAAA;AACZ,CAAA","file":"prompts.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentSystemPromptInputSchema,\n RequirementAgentTaskPromptInputSchema,\n RequirementAgentToolErrorPromptInputSchema,\n RequirementAgentToolNoResultPromptInputSchema,\n} from \"@/agents/requirement/types.js\";\n\nexport const RequirementAgentSystemPrompt = new PromptTemplate({\n schema: RequirementAgentSystemPromptInputSchema,\n template: `# Role\nAssume the role of {{role}}.\n\n# Instructions\n{{#instructions}}\n{{{.}}}\n{{/instructions}}\nWhen the user sends a message, figure out a solution and provide a final answer to the user by calling the '{{finalAnswerName}}' tool.\n{{#finalAnswerSchema}}\nThe final answer must fulfill the following.\n\n\\`\\`\\`\n{{{finalAnswerSchema}}}\n\\`\\`\\`\n{{/finalAnswerSchema}}\n{{#finalAnswerInstructions}}\n{{{finalAnswerInstructions}}}\n{{/finalAnswerInstructions}}\n\nIMPORTANT: The facts mentioned in the final answer must be backed by evidence provided by relevant tool outputs.\n\n# Tools\nYou must use a tool to retrieve factual or historical information.\nNever use the tool twice with the same input if not stated otherwise.\n\n{{#tools.0}}\n{{#tools}}\nName: {{name}}\nDescription: {{description}}\nAllowed: {{allowed}}{{#reason}}\nReason: {{{.}}}{{/reason}}\n\n{{/tools}}\n{{/tools.0}}\n\n# Notes\n- Use markdown syntax to format code snippets, links, JSON, tables, images, and files.\n- If the provided task is unclear, ask the user for clarification.\n- Do not refer to tools or tool outputs by name when responding.\n- Always take it one step at a time. Don't try to do multiple things at once.\n- When the tool doesn't give you what you were asking for, you must either use another tool or a different tool input.\n- You should always try a few different approaches before declaring the problem unsolvable.\n- If you can't fully answer the user's question, answer partially and describe what you couldn't achieve.\n- You cannot do complex calculations, computations, or data manipulations without using tools.\n- The current date and time is: {{formatDate}}\n{{#notes}}\n{{{.}}}\n{{/notes}}`,\n defaults: {\n role: \"a helpful AI assistant\",\n instructions: \"\",\n },\n functions: {\n formatDate: () => new Date().toISOString().split(\"T\")[0],\n },\n});\n\nexport const RequirementAgentTaskPrompt = new PromptTemplate({\n schema: RequirementAgentTaskPromptInputSchema,\n template: `{{#context}}This is the context relevant to the task:\n{{{.}}}\n\n{{/context}}\n{{#expectedOutput}}\nThis is the expected criteria for your output:\n{{.}}\n\n{{/expectedOutput}}\nYour task: {{prompt}}`,\n});\n\nexport const RequirementAgentToolErrorPrompt = new PromptTemplate({\n schema: RequirementAgentToolErrorPromptInputSchema,\n template: `The tool has failed; the error log is shown below. If the tool cannot accomplish what you want, use a different tool or explain why you can't use it.\n\n{{{reason}}}`,\n});\n\nexport const RequirementAgentToolNoResultPrompt = new PromptTemplate({\n schema: RequirementAgentToolNoResultPromptInputSchema,\n template: `No results were found! Try to reformulate your query or use a different tool.`,\n});\n"]}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var requirement_cjs = require('./requirement.cjs');
|
|
4
|
+
var utils_cjs = require('./utils.cjs');
|
|
5
|
+
var errors_cjs = require('../../../errors.cjs');
|
|
6
|
+
var remeda = require('remeda');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
class ConditionalRequirement extends requirement_cjs.Requirement {
|
|
11
|
+
static {
|
|
12
|
+
__name(this, "ConditionalRequirement");
|
|
13
|
+
}
|
|
14
|
+
source;
|
|
15
|
+
sourceTool;
|
|
16
|
+
before;
|
|
17
|
+
after;
|
|
18
|
+
forceAfterSet;
|
|
19
|
+
minInvocations;
|
|
20
|
+
maxInvocations;
|
|
21
|
+
forceAtStepValue;
|
|
22
|
+
onlySuccessInvocations;
|
|
23
|
+
consecutiveAllowedValue;
|
|
24
|
+
customChecks;
|
|
25
|
+
forcePreventStop;
|
|
26
|
+
reason;
|
|
27
|
+
constructor(target, options = {}) {
|
|
28
|
+
super(options.name || `Condition${utils_cjs.extractTargetName(target)}`);
|
|
29
|
+
this.source = target;
|
|
30
|
+
this.enabled = options.enabled ?? true;
|
|
31
|
+
if (options.priority !== void 0) {
|
|
32
|
+
this.priority = options.priority;
|
|
33
|
+
}
|
|
34
|
+
this.before = utils_cjs.extractTargets(options.onlyBefore);
|
|
35
|
+
this.after = utils_cjs.extractTargets(options.onlyAfter);
|
|
36
|
+
this.forceAfterSet = utils_cjs.extractTargets(options.forceAfter);
|
|
37
|
+
this.minInvocations = options.minInvocations ?? 0;
|
|
38
|
+
this.maxInvocations = options.maxInvocations ?? Infinity;
|
|
39
|
+
this.forceAtStepValue = options.forceAtStep;
|
|
40
|
+
this.onlySuccessInvocations = options.onlySuccessInvocations ?? true;
|
|
41
|
+
this.consecutiveAllowedValue = options.consecutiveAllowed ?? true;
|
|
42
|
+
this.customChecks = options.customChecks ?? [];
|
|
43
|
+
this.forcePreventStop = options.forcePreventStop ?? true;
|
|
44
|
+
this.reason = options.reason;
|
|
45
|
+
this.checkInvariant();
|
|
46
|
+
}
|
|
47
|
+
checkInvariant() {
|
|
48
|
+
if (this.minInvocations < 0) {
|
|
49
|
+
throw new errors_cjs.ValueError("The 'minInvocations' argument must be non negative!");
|
|
50
|
+
}
|
|
51
|
+
if (this.maxInvocations < 0) {
|
|
52
|
+
throw new errors_cjs.ValueError("The 'maxInvocations' argument must be non negative!");
|
|
53
|
+
}
|
|
54
|
+
if (this.minInvocations > this.maxInvocations) {
|
|
55
|
+
throw new errors_cjs.ValueError("The 'minInvocations' argument must be less than or equal to 'maxInvocations'!");
|
|
56
|
+
}
|
|
57
|
+
const sourceName = utils_cjs.extractTargetName(this.source);
|
|
58
|
+
if (this.before.has(this.source)) {
|
|
59
|
+
throw new errors_cjs.ValueError(`Referencing self in 'before' is not allowed (${sourceName})!`);
|
|
60
|
+
}
|
|
61
|
+
if (this.forceAfterSet.has(this.source)) {
|
|
62
|
+
throw new errors_cjs.ValueError(`Referencing self in 'forceAfter' is not allowed (${sourceName})!`);
|
|
63
|
+
}
|
|
64
|
+
const beforeAfterIntersection = new Set([
|
|
65
|
+
...this.before
|
|
66
|
+
].filter((x) => this.after.has(x)));
|
|
67
|
+
if (beforeAfterIntersection.size > 0) {
|
|
68
|
+
throw new errors_cjs.ValueError(`Tool specified as 'before' and 'after' at the same time: ${Array.from(beforeAfterIntersection).join(", ")}!`);
|
|
69
|
+
}
|
|
70
|
+
const beforeForceAfterIntersection = new Set([
|
|
71
|
+
...this.before
|
|
72
|
+
].filter((x) => this.forceAfterSet.has(x)));
|
|
73
|
+
if (beforeForceAfterIntersection.size > 0) {
|
|
74
|
+
throw new errors_cjs.ValueError(`Tool specified as 'before' and 'forceAfter' at the same time: ${Array.from(beforeForceAfterIntersection).join(", ")}!`);
|
|
75
|
+
}
|
|
76
|
+
if (this.forceAtStepValue !== void 0 && this.forceAtStepValue < 1) {
|
|
77
|
+
throw new errors_cjs.ValueError("The 'forceAtStep' argument must be >= 1!");
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async init(tools, ctx) {
|
|
81
|
+
await super.init(tools, ctx);
|
|
82
|
+
const allTargets = /* @__PURE__ */ new Set([
|
|
83
|
+
...this.before,
|
|
84
|
+
...this.after,
|
|
85
|
+
...this.forceAfterSet,
|
|
86
|
+
this.source
|
|
87
|
+
]);
|
|
88
|
+
utils_cjs.assertAllRulesFound(allTargets, tools);
|
|
89
|
+
for (const tool of tools) {
|
|
90
|
+
if (utils_cjs.targetSeenIn(tool, this.source)) {
|
|
91
|
+
if (this.sourceTool && this.sourceTool !== tool) {
|
|
92
|
+
throw new errors_cjs.ValueError(`More than one occurrence of ${utils_cjs.extractTargetName(this.source)} has been found!`);
|
|
93
|
+
}
|
|
94
|
+
this.sourceTool = tool;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (!this.sourceTool) {
|
|
98
|
+
throw new errors_cjs.ValueError(`Source tool ${utils_cjs.extractTargetName(this.source)} was not found!`);
|
|
99
|
+
}
|
|
100
|
+
if (utils_cjs.targetSeenIn(this.sourceTool, this.before)) {
|
|
101
|
+
throw new errors_cjs.ValueError(`Referencing self in 'before' is not allowed: ${this.sourceTool.name}!`);
|
|
102
|
+
}
|
|
103
|
+
if (this.consecutiveAllowedValue && utils_cjs.targetSeenIn(this.sourceTool, this.forceAfterSet)) {
|
|
104
|
+
throw new errors_cjs.ValueError(`Referencing self in 'forceAfter' is not allowed: ${this.sourceTool.name}. It would prevent an infinite loop. Consider setting 'consecutiveAllowed' to false.`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
reset() {
|
|
108
|
+
this.before.clear();
|
|
109
|
+
this.after.clear();
|
|
110
|
+
this.forceAfterSet.clear();
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
async _run(state, _) {
|
|
114
|
+
const sourceTool = this.sourceTool;
|
|
115
|
+
if (!sourceTool) {
|
|
116
|
+
throw new requirement_cjs.RequirementError("Source was not found!", this);
|
|
117
|
+
}
|
|
118
|
+
const steps = this.onlySuccessInvocations ? state.steps.filter((step) => !step.error) : state.steps;
|
|
119
|
+
const lastStepTool = steps.at(-1)?.tool;
|
|
120
|
+
const invocations = steps.filter((step) => step.tool === sourceTool).length;
|
|
121
|
+
const resolve = /* @__PURE__ */ __name((allowed) => {
|
|
122
|
+
const currentStep = steps.length + 1;
|
|
123
|
+
if (!allowed && this.forceAtStepValue === currentStep) {
|
|
124
|
+
throw new requirement_cjs.RequirementError(`Tool '${sourceTool.name}' cannot be executed at step ${this.forceAtStepValue} because it has not met all requirements.`, this);
|
|
125
|
+
}
|
|
126
|
+
const forced = allowed ? Boolean(utils_cjs.targetSeenIn(lastStepTool, this.forceAfterSet) || this.forceAtStepValue === currentStep) : false;
|
|
127
|
+
return [
|
|
128
|
+
{
|
|
129
|
+
target: sourceTool.name,
|
|
130
|
+
allowed,
|
|
131
|
+
forced,
|
|
132
|
+
hidden: false,
|
|
133
|
+
preventStop: this.minInvocations > invocations || forced && this.forcePreventStop,
|
|
134
|
+
reason: !allowed ? this.reason : void 0
|
|
135
|
+
}
|
|
136
|
+
];
|
|
137
|
+
}, "resolve");
|
|
138
|
+
if (!this.consecutiveAllowedValue && sourceTool === lastStepTool) {
|
|
139
|
+
return resolve(false);
|
|
140
|
+
}
|
|
141
|
+
if (invocations >= this.maxInvocations) {
|
|
142
|
+
return resolve(false);
|
|
143
|
+
}
|
|
144
|
+
if (this.after.size > 0) {
|
|
145
|
+
const stepsAsToolCalls = steps.map((step) => step.tool).filter(remeda.isTruthy);
|
|
146
|
+
const afterToolsRemaining = new Set(this.after);
|
|
147
|
+
for (const stepTool of stepsAsToolCalls) {
|
|
148
|
+
if (utils_cjs.targetSeenIn(stepTool, this.forceAfterSet)) {
|
|
149
|
+
return resolve(false);
|
|
150
|
+
}
|
|
151
|
+
const matcher = utils_cjs.targetSeenIn(stepTool, this.after);
|
|
152
|
+
if (matcher) {
|
|
153
|
+
afterToolsRemaining.delete(matcher);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (afterToolsRemaining.size > 0) {
|
|
157
|
+
return resolve(false);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
for (const check of this.customChecks) {
|
|
161
|
+
if (!check(state)) {
|
|
162
|
+
return resolve(false);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return resolve(true);
|
|
166
|
+
}
|
|
167
|
+
async clone() {
|
|
168
|
+
const instance = await super.clone();
|
|
169
|
+
instance.before = new Set(this.before);
|
|
170
|
+
instance.after = new Set(this.after);
|
|
171
|
+
instance.forceAfterSet = new Set(this.forceAfterSet);
|
|
172
|
+
instance.minInvocations = this.minInvocations;
|
|
173
|
+
instance.maxInvocations = this.maxInvocations;
|
|
174
|
+
instance.customChecks = [
|
|
175
|
+
...this.customChecks
|
|
176
|
+
];
|
|
177
|
+
instance.onlySuccessInvocations = this.onlySuccessInvocations;
|
|
178
|
+
instance.forceAtStepValue = this.forceAtStepValue;
|
|
179
|
+
instance.consecutiveAllowedValue = this.consecutiveAllowedValue;
|
|
180
|
+
instance.source = this.source;
|
|
181
|
+
instance.sourceTool = this.sourceTool;
|
|
182
|
+
instance.forcePreventStop = this.forcePreventStop;
|
|
183
|
+
instance.reason = this.reason;
|
|
184
|
+
return instance;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
exports.ConditionalRequirement = ConditionalRequirement;
|
|
189
|
+
//# sourceMappingURL=conditional.cjs.map
|
|
190
|
+
//# sourceMappingURL=conditional.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/conditional.ts"],"names":["ConditionalRequirement","Requirement","source","sourceTool","before","after","forceAfterSet","minInvocations","maxInvocations","forceAtStepValue","onlySuccessInvocations","consecutiveAllowedValue","customChecks","forcePreventStop","reason","target","options","name","extractTargetName","enabled","priority","undefined","extractTargets","onlyBefore","onlyAfter","forceAfter","Infinity","forceAtStep","consecutiveAllowed","checkInvariant","ValueError","sourceName","has","beforeAfterIntersection","Set","filter","x","size","Array","from","join","beforeForceAfterIntersection","init","tools","ctx","allTargets","assertAllRulesFound","tool","targetSeenIn","reset","clear","_run","state","_","RequirementError","steps","step","error","lastStepTool","at","invocations","length","resolve","allowed","currentStep","forced","Boolean","hidden","preventStop","stepsAsToolCalls","map","isTruthy","afterToolsRemaining","stepTool","matcher","delete","check","clone","instance"],"mappings":"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","file":"conditional.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Requirement, RequirementError, Rule } from \"./requirement.js\";\nimport {\n TargetType,\n MultiTargetType,\n extractTargets,\n extractTargetName,\n targetSeenIn,\n assertAllRulesFound,\n} from \"./utils.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { isTruthy } from \"remeda\";\n\nexport interface ConditionalRequirementOptions {\n name?: string;\n forceAtStep?: number;\n onlyBefore?: MultiTargetType;\n onlyAfter?: MultiTargetType;\n forceAfter?: MultiTargetType;\n forcePreventStop?: boolean;\n minInvocations?: number;\n maxInvocations?: number;\n onlySuccessInvocations?: boolean;\n consecutiveAllowed?: boolean;\n priority?: number;\n customChecks?: ((state: RequirementAgentRunState) => boolean)[];\n enabled?: boolean;\n reason?: string;\n}\n\nexport class ConditionalRequirement extends Requirement {\n protected source: TargetType;\n protected sourceTool?: AnyTool;\n protected before: Set<TargetType>;\n protected after: Set<TargetType>;\n protected forceAfterSet: Set<TargetType>;\n protected minInvocations: number;\n protected maxInvocations: number;\n protected forceAtStepValue?: number;\n protected onlySuccessInvocations: boolean;\n protected consecutiveAllowedValue: boolean;\n protected customChecks: ((state: RequirementAgentRunState) => boolean)[];\n protected forcePreventStop: boolean;\n protected reason?: string;\n\n constructor(target: TargetType, options: ConditionalRequirementOptions = {}) {\n super(options.name || `Condition${extractTargetName(target)}`);\n\n this.source = target;\n this.enabled = options.enabled ?? true;\n\n if (options.priority !== undefined) {\n this.priority = options.priority;\n }\n\n this.before = extractTargets(options.onlyBefore);\n this.after = extractTargets(options.onlyAfter);\n this.forceAfterSet = extractTargets(options.forceAfter);\n this.minInvocations = options.minInvocations ?? 0;\n this.maxInvocations = options.maxInvocations ?? Infinity;\n this.forceAtStepValue = options.forceAtStep;\n this.onlySuccessInvocations = options.onlySuccessInvocations ?? true;\n this.consecutiveAllowedValue = options.consecutiveAllowed ?? true;\n this.customChecks = options.customChecks ?? [];\n this.forcePreventStop = options.forcePreventStop ?? true;\n this.reason = options.reason;\n\n this.checkInvariant();\n }\n\n protected checkInvariant(): void {\n if (this.minInvocations < 0) {\n throw new ValueError(\"The 'minInvocations' argument must be non negative!\");\n }\n\n if (this.maxInvocations < 0) {\n throw new ValueError(\"The 'maxInvocations' argument must be non negative!\");\n }\n\n if (this.minInvocations > this.maxInvocations) {\n throw new ValueError(\n \"The 'minInvocations' argument must be less than or equal to 'maxInvocations'!\",\n );\n }\n\n const sourceName = extractTargetName(this.source);\n if (this.before.has(this.source)) {\n throw new ValueError(`Referencing self in 'before' is not allowed (${sourceName})!`);\n }\n\n if (this.forceAfterSet.has(this.source)) {\n throw new ValueError(`Referencing self in 'forceAfter' is not allowed (${sourceName})!`);\n }\n\n const beforeAfterIntersection = new Set([...this.before].filter((x) => this.after.has(x)));\n if (beforeAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'after' at the same time: ${Array.from(beforeAfterIntersection).join(\", \")}!`,\n );\n }\n\n const beforeForceAfterIntersection = new Set(\n [...this.before].filter((x) => this.forceAfterSet.has(x)),\n );\n if (beforeForceAfterIntersection.size > 0) {\n throw new ValueError(\n `Tool specified as 'before' and 'forceAfter' at the same time: ${Array.from(beforeForceAfterIntersection).join(\", \")}!`,\n );\n }\n\n if (this.forceAtStepValue !== undefined && this.forceAtStepValue < 1) {\n throw new ValueError(\"The 'forceAtStep' argument must be >= 1!\");\n }\n }\n\n async init(tools: AnyTool[], ctx: RunContext<any>): Promise<void> {\n await super.init(tools, ctx);\n\n const allTargets = new Set([...this.before, ...this.after, ...this.forceAfterSet, this.source]);\n assertAllRulesFound(allTargets, tools);\n\n for (const tool of tools) {\n if (targetSeenIn(tool, this.source)) {\n if (this.sourceTool && this.sourceTool !== tool) {\n throw new ValueError(\n `More than one occurrence of ${extractTargetName(this.source)} has been found!`,\n );\n }\n this.sourceTool = tool;\n }\n }\n\n if (!this.sourceTool) {\n throw new ValueError(`Source tool ${extractTargetName(this.source)} was not found!`);\n }\n\n if (targetSeenIn(this.sourceTool, this.before)) {\n throw new ValueError(`Referencing self in 'before' is not allowed: ${this.sourceTool.name}!`);\n }\n\n if (this.consecutiveAllowedValue && targetSeenIn(this.sourceTool, this.forceAfterSet)) {\n throw new ValueError(\n `Referencing self in 'forceAfter' is not allowed: ${this.sourceTool.name}. ` +\n `It would prevent an infinite loop. Consider setting 'consecutiveAllowed' to false.`,\n );\n }\n }\n\n reset(): this {\n this.before.clear();\n this.after.clear();\n this.forceAfterSet.clear();\n return this;\n }\n\n async _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]> {\n const sourceTool = this.sourceTool;\n if (!sourceTool) {\n throw new RequirementError(\"Source was not found!\", this);\n }\n\n // Get steps from state (assuming state has steps property)\n const steps = this.onlySuccessInvocations\n ? state.steps.filter((step) => !step.error)\n : state.steps;\n\n const lastStepTool = steps.at(-1)?.tool;\n\n const invocations = steps.filter((step) => step.tool === sourceTool).length;\n\n const resolve = (allowed: boolean): Rule[] => {\n const currentStep = steps.length + 1;\n if (!allowed && this.forceAtStepValue === currentStep) {\n throw new RequirementError(\n `Tool '${sourceTool.name}' cannot be executed at step ${this.forceAtStepValue} ` +\n `because it has not met all requirements.`,\n this,\n );\n }\n\n const forced = allowed\n ? Boolean(\n targetSeenIn(lastStepTool, this.forceAfterSet) || this.forceAtStepValue === currentStep,\n )\n : false;\n\n return [\n {\n target: sourceTool.name,\n allowed,\n forced,\n hidden: false,\n preventStop: this.minInvocations > invocations || (forced && this.forcePreventStop),\n reason: !allowed ? this.reason : undefined,\n },\n ];\n };\n\n // Check consecutive constraint\n if (!this.consecutiveAllowedValue && sourceTool === lastStepTool) {\n return resolve(false);\n }\n\n // Check max invocations\n if (invocations >= this.maxInvocations) {\n return resolve(false);\n }\n\n // Check after/before constraints\n if (this.after.size > 0) {\n const stepsAsToolCalls = steps.map((step) => step.tool).filter(isTruthy);\n const afterToolsRemaining = new Set(this.after);\n\n for (const stepTool of stepsAsToolCalls) {\n if (targetSeenIn(stepTool, this.forceAfterSet)) {\n return resolve(false);\n }\n\n const matcher = targetSeenIn(stepTool as any, this.after);\n if (matcher) {\n afterToolsRemaining.delete(matcher);\n }\n }\n\n if (afterToolsRemaining.size > 0) {\n return resolve(false);\n }\n }\n\n // Check custom checks\n for (const check of this.customChecks) {\n if (!check(state)) {\n return resolve(false);\n }\n }\n\n return resolve(true);\n }\n\n async clone(): Promise<this> {\n const instance = await super.clone();\n instance.before = new Set(this.before);\n instance.after = new Set(this.after);\n instance.forceAfterSet = new Set(this.forceAfterSet);\n instance.minInvocations = this.minInvocations;\n instance.maxInvocations = this.maxInvocations;\n instance.customChecks = [...this.customChecks];\n instance.onlySuccessInvocations = this.onlySuccessInvocations;\n instance.forceAtStepValue = this.forceAtStepValue;\n instance.consecutiveAllowedValue = this.consecutiveAllowedValue;\n instance.source = this.source;\n instance.sourceTool = this.sourceTool;\n instance.forcePreventStop = this.forcePreventStop;\n instance.reason = this.reason;\n return instance;\n }\n}\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Requirement, Rule } from './requirement.cjs';
|
|
2
|
+
import { MultiTargetType, TargetType } from './utils.cjs';
|
|
3
|
+
import { AnyTool } from '../../../tools/base.cjs';
|
|
4
|
+
import { RunContext } from '../../../context.cjs';
|
|
5
|
+
import { R as RequirementAgentRunState } from '../../../types-W0QttuP_.cjs';
|
|
6
|
+
import '../../../emitter-jN55XZZq.cjs';
|
|
7
|
+
import '../../../internals/types.cjs';
|
|
8
|
+
import '../../../internals/helpers/guards.cjs';
|
|
9
|
+
import '../../../internals/serializable.cjs';
|
|
10
|
+
import '../../../errors.cjs';
|
|
11
|
+
import '../../../internals/helpers/promise.cjs';
|
|
12
|
+
import 'ajv';
|
|
13
|
+
import 'promise-based-task';
|
|
14
|
+
import '../../../cache/base.cjs';
|
|
15
|
+
import '../../../internals/helpers/schema.cjs';
|
|
16
|
+
import 'zod';
|
|
17
|
+
import 'zod-to-json-schema';
|
|
18
|
+
import '../../../memory/base.cjs';
|
|
19
|
+
import '../../../backend/message.cjs';
|
|
20
|
+
import 'ai';
|
|
21
|
+
import '../../../template.cjs';
|
|
22
|
+
import '../../../chat-BOb9n7AJ.cjs';
|
|
23
|
+
import '../../../backend/constants.cjs';
|
|
24
|
+
import '../../../logger/logger.cjs';
|
|
25
|
+
import 'pino';
|
|
26
|
+
import '../../../base-XfWeXQ-S.cjs';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
30
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
interface ConditionalRequirementOptions {
|
|
34
|
+
name?: string;
|
|
35
|
+
forceAtStep?: number;
|
|
36
|
+
onlyBefore?: MultiTargetType;
|
|
37
|
+
onlyAfter?: MultiTargetType;
|
|
38
|
+
forceAfter?: MultiTargetType;
|
|
39
|
+
forcePreventStop?: boolean;
|
|
40
|
+
minInvocations?: number;
|
|
41
|
+
maxInvocations?: number;
|
|
42
|
+
onlySuccessInvocations?: boolean;
|
|
43
|
+
consecutiveAllowed?: boolean;
|
|
44
|
+
priority?: number;
|
|
45
|
+
customChecks?: ((state: RequirementAgentRunState) => boolean)[];
|
|
46
|
+
enabled?: boolean;
|
|
47
|
+
reason?: string;
|
|
48
|
+
}
|
|
49
|
+
declare class ConditionalRequirement extends Requirement {
|
|
50
|
+
protected source: TargetType;
|
|
51
|
+
protected sourceTool?: AnyTool;
|
|
52
|
+
protected before: Set<TargetType>;
|
|
53
|
+
protected after: Set<TargetType>;
|
|
54
|
+
protected forceAfterSet: Set<TargetType>;
|
|
55
|
+
protected minInvocations: number;
|
|
56
|
+
protected maxInvocations: number;
|
|
57
|
+
protected forceAtStepValue?: number;
|
|
58
|
+
protected onlySuccessInvocations: boolean;
|
|
59
|
+
protected consecutiveAllowedValue: boolean;
|
|
60
|
+
protected customChecks: ((state: RequirementAgentRunState) => boolean)[];
|
|
61
|
+
protected forcePreventStop: boolean;
|
|
62
|
+
protected reason?: string;
|
|
63
|
+
constructor(target: TargetType, options?: ConditionalRequirementOptions);
|
|
64
|
+
protected checkInvariant(): void;
|
|
65
|
+
init(tools: AnyTool[], ctx: RunContext<any>): Promise<void>;
|
|
66
|
+
reset(): this;
|
|
67
|
+
_run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]>;
|
|
68
|
+
clone(): Promise<this>;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { ConditionalRequirement, type ConditionalRequirementOptions };
|