beeai-framework 0.1.21 → 0.1.22
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.d.cts +2 -2
- package/dist/adapters/ollama/backend/chat.d.ts +2 -2
- 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.d.cts +2 -2
- package/dist/adapters/vercel/backend/chat.d.ts +2 -2
- 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 +15 -0
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +4 -3
- package/dist/adapters/vercel/backend/utils.d.ts +4 -3
- package/dist/adapters/vercel/backend/utils.js +15 -1
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
- package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
- 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-BMfyig7X.d.cts} +5 -4
- package/dist/{agent-CHebzsQB.d.ts → agent-Dxw8AGWb.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/prompts.d.cts +1 -1
- package/dist/agents/react/prompts.d.ts +1 -1
- 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/prompts.d.cts +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.cts +5 -5
- package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
- 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/prompts.d.cts +1 -1
- package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
- package/dist/agents/react/runners/granite/runner.d.cts +5 -5
- package/dist/agents/react/runners/granite/runner.d.ts +5 -5
- 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 +252 -0
- package/dist/agents/requirement/runner.cjs.map +1 -0
- package/dist/agents/requirement/runner.d.cts +117 -0
- package/dist/agents/requirement/runner.d.ts +117 -0
- package/dist/agents/requirement/runner.js +250 -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 +94 -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 +91 -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.d.cts +8 -12
- package/dist/agents/toolCalling/agent.d.ts +8 -12
- 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.d.cts +2 -2
- package/dist/backend/chat.d.ts +2 -2
- package/dist/backend/core.d.cts +2 -2
- package/dist/backend/core.d.ts +2 -2
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/{base-BQgDlcGa.d.ts → base-BurRTBA7.d.ts} +4 -2
- package/dist/{base-CwcxwybB.d.cts → base-v-PYIq5G.d.cts} +4 -2
- package/dist/{chat-C0s-o6ll.d.ts → chat-BbCYMAdE.d.ts} +1 -1
- package/dist/{chat-CRb3vUVg.d.cts → chat-DB_cf15S.d.cts} +1 -1
- 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 +19 -13
- 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 +19 -13
- 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-DpqUYjXH.d.cts → emitter-CGKd_-kK.d.cts} +3 -2
- package/dist/{emitter-CZFbzlUi.d.ts → emitter-CN7I4uSV.d.ts} +3 -2
- 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/trajectory.cjs +322 -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 +320 -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 +1 -1
- package/dist/tools/database/milvus.d.ts +1 -1
- 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/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-BXkkbABd.d.ts +213 -0
- package/dist/types-Cx6f43du.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 +4 -4
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var context_cjs = require('../../../context.cjs');
|
|
4
|
+
var emitter_cjs = require('../../../emitter/emitter.cjs');
|
|
5
|
+
var errors_cjs = require('../../../errors.cjs');
|
|
6
|
+
var remeda = require('remeda');
|
|
7
|
+
var decoratorCache_cjs = require('../../../cache/decoratorCache.cjs');
|
|
8
|
+
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
11
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
12
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
13
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
14
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
15
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
16
|
+
}
|
|
17
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
18
|
+
function _ts_metadata(k, v) {
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
20
|
+
}
|
|
21
|
+
__name(_ts_metadata, "_ts_metadata");
|
|
22
|
+
class Requirement {
|
|
23
|
+
static {
|
|
24
|
+
__name(this, "Requirement");
|
|
25
|
+
}
|
|
26
|
+
name;
|
|
27
|
+
state = {};
|
|
28
|
+
enabled = true;
|
|
29
|
+
middlewares = [];
|
|
30
|
+
_priority = 10;
|
|
31
|
+
constructor(name) {
|
|
32
|
+
this.name = name || this.constructor.name;
|
|
33
|
+
}
|
|
34
|
+
get priority() {
|
|
35
|
+
return this._priority;
|
|
36
|
+
}
|
|
37
|
+
set priority(value) {
|
|
38
|
+
if (value <= 0) {
|
|
39
|
+
throw new errors_cjs.ValueError("Priority must be a positive integer.");
|
|
40
|
+
}
|
|
41
|
+
this._priority = value;
|
|
42
|
+
}
|
|
43
|
+
get emitter() {
|
|
44
|
+
return emitter_cjs.Emitter.root.child({
|
|
45
|
+
namespace: [
|
|
46
|
+
"requirement",
|
|
47
|
+
remeda.toCamelCase(this.name)
|
|
48
|
+
],
|
|
49
|
+
creator: this
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
run(state) {
|
|
53
|
+
return context_cjs.RunContext.enter(this, {
|
|
54
|
+
signal: void 0,
|
|
55
|
+
params: [
|
|
56
|
+
state
|
|
57
|
+
]
|
|
58
|
+
}, async (context) => {
|
|
59
|
+
return await this._run(state, context);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
async init(tools, _) {
|
|
63
|
+
await this.emitter.emit("init", {
|
|
64
|
+
tools
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async clone() {
|
|
68
|
+
const instance = Object.create(Object.getPrototypeOf(this));
|
|
69
|
+
instance.name = this.name;
|
|
70
|
+
instance.priority = this.priority;
|
|
71
|
+
instance.enabled = this.enabled;
|
|
72
|
+
instance.state = {
|
|
73
|
+
...this.state
|
|
74
|
+
};
|
|
75
|
+
instance.middlewares = [
|
|
76
|
+
...this.middlewares
|
|
77
|
+
];
|
|
78
|
+
return instance;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_ts_decorate([
|
|
82
|
+
decoratorCache_cjs.Cache({
|
|
83
|
+
enumerable: false
|
|
84
|
+
}),
|
|
85
|
+
_ts_metadata("design:type", typeof emitter_cjs.Emitter === "undefined" ? Object : emitter_cjs.Emitter),
|
|
86
|
+
_ts_metadata("design:paramtypes", [])
|
|
87
|
+
], Requirement.prototype, "emitter", null);
|
|
88
|
+
class RequirementError extends errors_cjs.FrameworkError {
|
|
89
|
+
static {
|
|
90
|
+
__name(this, "RequirementError");
|
|
91
|
+
}
|
|
92
|
+
requirement;
|
|
93
|
+
constructor(message, requirement, cause, context) {
|
|
94
|
+
super(message, cause ? [
|
|
95
|
+
cause
|
|
96
|
+
] : void 0, {
|
|
97
|
+
isFatal: true,
|
|
98
|
+
isRetryable: false,
|
|
99
|
+
context
|
|
100
|
+
}), this.requirement = requirement;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
exports.Requirement = Requirement;
|
|
105
|
+
exports.RequirementError = RequirementError;
|
|
106
|
+
//# sourceMappingURL=requirement.cjs.map
|
|
107
|
+
//# sourceMappingURL=requirement.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/requirement.ts"],"names":["Requirement","name","state","enabled","middlewares","_priority","priority","value","ValueError","emitter","Emitter","root","child","namespace","toCamelCase","creator","run","RunContext","enter","signal","undefined","params","context","_run","init","tools","_","emit","clone","instance","Object","create","getPrototypeOf","enumerable","RequirementError","FrameworkError","message","requirement","cause","isFatal","isRetryable"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBO,MAAeA,WAAAA,CAAAA;AAAAA,EAAAA;;;AACbC,EAAAA,IAAAA;AACAC,EAAAA,KAAAA,GAA6B,EAAC;EAC9BC,OAAAA,GAAU,IAAA;AACVC,EAAAA,WAAAA,GAA6C,EAAA;EAE1CC,SAAAA,GAAY,EAAA;AAEtB,EAAA,WAAA,CAAYJ,IAAAA,EAAe;AACzB,IAAA,IAAA,CAAKA,IAAAA,GAAOA,IAAAA,IAAQ,IAAA,CAAK,WAAA,CAAYA,IAAAA;AACvC;AAEA,EAAA,IAAIK,QAAAA,GAAmB;AACrB,IAAA,OAAO,IAAA,CAAKD,SAAAA;AACd;AAEA,EAAA,IAAIC,SAASC,KAAAA,EAAe;AAC1B,IAAA,IAAIA,SAAS,CAAA,EAAG;AACd,MAAA,MAAM,IAAIC,sBAAW,sCAAA,CAAA;AACvB;AACA,IAAA,IAAA,CAAKH,SAAAA,GAAYE,KAAAA;AACnB;AAEA,EAAA,IACIE,OAAAA,GAAyC;AAC3C,IAAA,OAAOC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,aAAA;AAAeC,QAAAA,kBAAAA,CAAY,KAAKb,IAAI;;MAChDc,OAAAA,EAAS;KACX,CAAA;AACF;AAEAC,EAAAA,GAAAA,CAAId,KAAAA,EAAiC;AACnC,IAAA,OAAOe,sBAAAA,CAAWC,MAChB,IAAA,EACA;MAAEC,MAAAA,EAAQC,MAAAA;MAAWC,MAAAA,EAAQ;AAACnB,QAAAA;;AAAgB,KAAA,EAC9C,OAAOoB,OAAAA,KAAAA;AACL,MAAA,OAAO,MAAM,IAAA,CAAKC,IAAAA,CAAKrB,KAAAA,EAAOoB,OAAAA,CAAAA;KAChC,CAAA;AAEJ;EAIA,MAAME,IAAAA,CAAKC,OAAkBC,CAAAA,EAAmC;AAC9D,IAAA,MAAM,IAAA,CAAKjB,OAAAA,CAAQkB,IAAAA,CAAK,MAAA,EAAQ;AAAEF,MAAAA;KAAM,CAAA;AAC1C;AAEA,EAAA,MAAMG,KAAAA,GAAuB;AAC3B,IAAA,MAAMC,WAAWC,MAAAA,CAAOC,MAAAA,CAAOD,MAAAA,CAAOE,cAAAA,CAAe,IAAI,CAAA,CAAA;AACzDH,IAAAA,QAAAA,CAAS5B,OAAO,IAAA,CAAKA,IAAAA;AACrB4B,IAAAA,QAAAA,CAASvB,WAAW,IAAA,CAAKA,QAAAA;AACzBuB,IAAAA,QAAAA,CAAS1B,UAAU,IAAA,CAAKA,OAAAA;AACxB0B,IAAAA,QAAAA,CAAS3B,KAAAA,GAAQ;AAAE,MAAA,GAAG,IAAA,CAAKA;AAAM,KAAA;AACjC2B,IAAAA,QAAAA,CAASzB,WAAAA,GAAc;SAAI,IAAA,CAAKA;;AAChC,IAAA,OAAOyB,QAAAA;AACT;AACF;;;IAjCWI,UAAAA,EAAY;;;;;AAoChB,MAAMC,yBAAyBC,yBAAAA,CAAAA;AAAAA,EAAAA;;;;EACpC,WAAA,CACEC,OAAAA,EACgBC,WAAAA,EAChBC,KAAAA,EACAhB,OAAAA,EACA;AACA,IAAA,KAAA,CAAMc,SAASE,KAAAA,GAAQ;AAACA,MAAAA;QAASlB,MAAAA,EAAW;MAC1CmB,OAAAA,EAAS,IAAA;MACTC,WAAAA,EAAa,KAAA;AACblB,MAAAA;KACF,CAAA,EAAA,KARgBe,WAAAA,GAAAA,WAAAA;AASlB;AACF","file":"requirement.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool } from \"@/tools/base.js\";\nimport { MiddlewareType, RunContext } from \"@/context.js\";\nimport { Callback, Emitter } from \"@/emitter/emitter.js\";\nimport { FrameworkError, ValueError } from \"@/errors.js\";\nimport { toCamelCase } from \"remeda\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\n// Rule definition\nexport interface Rule {\n target: string;\n allowed: boolean;\n reason?: string;\n preventStop: boolean;\n forced: boolean;\n hidden: boolean;\n}\n\n// Base Requirement class\nexport abstract class Requirement {\n public name: string;\n public state: Record<string, any> = {};\n public enabled = true;\n public middlewares: MiddlewareType<typeof this>[] = [];\n\n protected _priority = 10;\n\n constructor(name?: string) {\n this.name = name || this.constructor.name;\n }\n\n get priority(): number {\n return this._priority;\n }\n\n set priority(value: number) {\n if (value <= 0) {\n throw new ValueError(\"Priority must be a positive integer.\");\n }\n this._priority = value;\n }\n\n @Cache({ enumerable: false })\n get emitter(): Emitter<RequirementCallbacks> {\n return Emitter.root.child({\n namespace: [\"requirement\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n run(state: RequirementAgentRunState) {\n return RunContext.enter(\n this,\n { signal: undefined, params: [state] as const },\n async (context) => {\n return await this._run(state, context);\n },\n );\n }\n\n abstract _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]>;\n\n async init(tools: AnyTool[], _: RunContext<any>): Promise<void> {\n await this.emitter.emit(\"init\", { tools });\n }\n\n async clone(): Promise<this> {\n const instance = Object.create(Object.getPrototypeOf(this));\n instance.name = this.name;\n instance.priority = this.priority;\n instance.enabled = this.enabled;\n instance.state = { ...this.state };\n instance.middlewares = [...this.middlewares];\n return instance;\n }\n}\n\n// Requirement error\nexport class RequirementError extends FrameworkError {\n constructor(\n message: string,\n public readonly requirement?: Requirement,\n cause?: Error,\n context?: Record<string, any>,\n ) {\n super(message, cause ? [cause] : undefined, {\n isFatal: true,\n isRetryable: false,\n context,\n });\n }\n}\n\nexport interface RequirementCallbacks {\n init: Callback<{ tools: AnyTool[] }>;\n}\n"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { MiddlewareType, Run, RunContext } from '../../../context.cjs';
|
|
2
|
+
import { AnyTool } from '../../../tools/base.cjs';
|
|
3
|
+
import { E as Emitter, C as Callback } from '../../../emitter-CGKd_-kK.cjs';
|
|
4
|
+
import { FrameworkError } from '../../../errors.cjs';
|
|
5
|
+
import { R as RequirementAgentRunState } from '../../../types-Cx6f43du.cjs';
|
|
6
|
+
import '../../../internals/serializable.cjs';
|
|
7
|
+
import '../../../internals/types.cjs';
|
|
8
|
+
import '../../../internals/helpers/guards.cjs';
|
|
9
|
+
import '../../../internals/helpers/promise.cjs';
|
|
10
|
+
import 'ajv';
|
|
11
|
+
import 'promise-based-task';
|
|
12
|
+
import '../../../cache/base.cjs';
|
|
13
|
+
import '../../../internals/helpers/schema.cjs';
|
|
14
|
+
import 'zod';
|
|
15
|
+
import 'zod-to-json-schema';
|
|
16
|
+
import '../../../memory/base.cjs';
|
|
17
|
+
import '../../../backend/message.cjs';
|
|
18
|
+
import 'ai';
|
|
19
|
+
import '../../../template.cjs';
|
|
20
|
+
import '../../../chat-DB_cf15S.cjs';
|
|
21
|
+
import '../../../backend/constants.cjs';
|
|
22
|
+
import '../../../logger/logger.cjs';
|
|
23
|
+
import 'pino';
|
|
24
|
+
import '../../../base-v-PYIq5G.cjs';
|
|
25
|
+
|
|
26
|
+
interface Rule {
|
|
27
|
+
target: string;
|
|
28
|
+
allowed: boolean;
|
|
29
|
+
reason?: string;
|
|
30
|
+
preventStop: boolean;
|
|
31
|
+
forced: boolean;
|
|
32
|
+
hidden: boolean;
|
|
33
|
+
}
|
|
34
|
+
declare abstract class Requirement {
|
|
35
|
+
name: string;
|
|
36
|
+
state: Record<string, any>;
|
|
37
|
+
enabled: boolean;
|
|
38
|
+
middlewares: MiddlewareType<typeof this>[];
|
|
39
|
+
protected _priority: number;
|
|
40
|
+
constructor(name?: string);
|
|
41
|
+
get priority(): number;
|
|
42
|
+
set priority(value: number);
|
|
43
|
+
get emitter(): Emitter<RequirementCallbacks>;
|
|
44
|
+
run(state: RequirementAgentRunState): Run<Rule[], this, readonly [RequirementAgentRunState]>;
|
|
45
|
+
abstract _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]>;
|
|
46
|
+
init(tools: AnyTool[], _: RunContext<any>): Promise<void>;
|
|
47
|
+
clone(): Promise<this>;
|
|
48
|
+
}
|
|
49
|
+
declare class RequirementError extends FrameworkError {
|
|
50
|
+
readonly requirement?: Requirement | undefined;
|
|
51
|
+
constructor(message: string, requirement?: Requirement | undefined, cause?: Error, context?: Record<string, any>);
|
|
52
|
+
}
|
|
53
|
+
interface RequirementCallbacks {
|
|
54
|
+
init: Callback<{
|
|
55
|
+
tools: AnyTool[];
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { Requirement, type RequirementCallbacks, RequirementError, type Rule };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { MiddlewareType, Run, RunContext } from '../../../context.js';
|
|
2
|
+
import { AnyTool } from '../../../tools/base.js';
|
|
3
|
+
import { E as Emitter, C as Callback } from '../../../emitter-CN7I4uSV.js';
|
|
4
|
+
import { FrameworkError } from '../../../errors.js';
|
|
5
|
+
import { R as RequirementAgentRunState } from '../../../types-BXkkbABd.js';
|
|
6
|
+
import '../../../internals/serializable.js';
|
|
7
|
+
import '../../../internals/types.js';
|
|
8
|
+
import '../../../internals/helpers/guards.js';
|
|
9
|
+
import '../../../internals/helpers/promise.js';
|
|
10
|
+
import 'ajv';
|
|
11
|
+
import 'promise-based-task';
|
|
12
|
+
import '../../../cache/base.js';
|
|
13
|
+
import '../../../internals/helpers/schema.js';
|
|
14
|
+
import 'zod';
|
|
15
|
+
import 'zod-to-json-schema';
|
|
16
|
+
import '../../../memory/base.js';
|
|
17
|
+
import '../../../backend/message.js';
|
|
18
|
+
import 'ai';
|
|
19
|
+
import '../../../template.js';
|
|
20
|
+
import '../../../chat-BbCYMAdE.js';
|
|
21
|
+
import '../../../backend/constants.js';
|
|
22
|
+
import '../../../logger/logger.js';
|
|
23
|
+
import 'pino';
|
|
24
|
+
import '../../../base-BurRTBA7.js';
|
|
25
|
+
|
|
26
|
+
interface Rule {
|
|
27
|
+
target: string;
|
|
28
|
+
allowed: boolean;
|
|
29
|
+
reason?: string;
|
|
30
|
+
preventStop: boolean;
|
|
31
|
+
forced: boolean;
|
|
32
|
+
hidden: boolean;
|
|
33
|
+
}
|
|
34
|
+
declare abstract class Requirement {
|
|
35
|
+
name: string;
|
|
36
|
+
state: Record<string, any>;
|
|
37
|
+
enabled: boolean;
|
|
38
|
+
middlewares: MiddlewareType<typeof this>[];
|
|
39
|
+
protected _priority: number;
|
|
40
|
+
constructor(name?: string);
|
|
41
|
+
get priority(): number;
|
|
42
|
+
set priority(value: number);
|
|
43
|
+
get emitter(): Emitter<RequirementCallbacks>;
|
|
44
|
+
run(state: RequirementAgentRunState): Run<Rule[], this, readonly [RequirementAgentRunState]>;
|
|
45
|
+
abstract _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]>;
|
|
46
|
+
init(tools: AnyTool[], _: RunContext<any>): Promise<void>;
|
|
47
|
+
clone(): Promise<this>;
|
|
48
|
+
}
|
|
49
|
+
declare class RequirementError extends FrameworkError {
|
|
50
|
+
readonly requirement?: Requirement | undefined;
|
|
51
|
+
constructor(message: string, requirement?: Requirement | undefined, cause?: Error, context?: Record<string, any>);
|
|
52
|
+
}
|
|
53
|
+
interface RequirementCallbacks {
|
|
54
|
+
init: Callback<{
|
|
55
|
+
tools: AnyTool[];
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { Requirement, type RequirementCallbacks, RequirementError, type Rule };
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { RunContext } from '../../../context.js';
|
|
2
|
+
import { Emitter } from '../../../emitter/emitter.js';
|
|
3
|
+
import { ValueError, FrameworkError } from '../../../errors.js';
|
|
4
|
+
import { toCamelCase } from 'remeda';
|
|
5
|
+
import { Cache } from '../../../cache/decoratorCache.js';
|
|
6
|
+
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
10
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
11
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
12
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
13
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
|
+
}
|
|
15
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
16
|
+
function _ts_metadata(k, v) {
|
|
17
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
18
|
+
}
|
|
19
|
+
__name(_ts_metadata, "_ts_metadata");
|
|
20
|
+
class Requirement {
|
|
21
|
+
static {
|
|
22
|
+
__name(this, "Requirement");
|
|
23
|
+
}
|
|
24
|
+
name;
|
|
25
|
+
state = {};
|
|
26
|
+
enabled = true;
|
|
27
|
+
middlewares = [];
|
|
28
|
+
_priority = 10;
|
|
29
|
+
constructor(name) {
|
|
30
|
+
this.name = name || this.constructor.name;
|
|
31
|
+
}
|
|
32
|
+
get priority() {
|
|
33
|
+
return this._priority;
|
|
34
|
+
}
|
|
35
|
+
set priority(value) {
|
|
36
|
+
if (value <= 0) {
|
|
37
|
+
throw new ValueError("Priority must be a positive integer.");
|
|
38
|
+
}
|
|
39
|
+
this._priority = value;
|
|
40
|
+
}
|
|
41
|
+
get emitter() {
|
|
42
|
+
return Emitter.root.child({
|
|
43
|
+
namespace: [
|
|
44
|
+
"requirement",
|
|
45
|
+
toCamelCase(this.name)
|
|
46
|
+
],
|
|
47
|
+
creator: this
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
run(state) {
|
|
51
|
+
return RunContext.enter(this, {
|
|
52
|
+
signal: void 0,
|
|
53
|
+
params: [
|
|
54
|
+
state
|
|
55
|
+
]
|
|
56
|
+
}, async (context) => {
|
|
57
|
+
return await this._run(state, context);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async init(tools, _) {
|
|
61
|
+
await this.emitter.emit("init", {
|
|
62
|
+
tools
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async clone() {
|
|
66
|
+
const instance = Object.create(Object.getPrototypeOf(this));
|
|
67
|
+
instance.name = this.name;
|
|
68
|
+
instance.priority = this.priority;
|
|
69
|
+
instance.enabled = this.enabled;
|
|
70
|
+
instance.state = {
|
|
71
|
+
...this.state
|
|
72
|
+
};
|
|
73
|
+
instance.middlewares = [
|
|
74
|
+
...this.middlewares
|
|
75
|
+
];
|
|
76
|
+
return instance;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
_ts_decorate([
|
|
80
|
+
Cache({
|
|
81
|
+
enumerable: false
|
|
82
|
+
}),
|
|
83
|
+
_ts_metadata("design:type", typeof Emitter === "undefined" ? Object : Emitter),
|
|
84
|
+
_ts_metadata("design:paramtypes", [])
|
|
85
|
+
], Requirement.prototype, "emitter", null);
|
|
86
|
+
class RequirementError extends FrameworkError {
|
|
87
|
+
static {
|
|
88
|
+
__name(this, "RequirementError");
|
|
89
|
+
}
|
|
90
|
+
requirement;
|
|
91
|
+
constructor(message, requirement, cause, context) {
|
|
92
|
+
super(message, cause ? [
|
|
93
|
+
cause
|
|
94
|
+
] : void 0, {
|
|
95
|
+
isFatal: true,
|
|
96
|
+
isRetryable: false,
|
|
97
|
+
context
|
|
98
|
+
}), this.requirement = requirement;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export { Requirement, RequirementError };
|
|
103
|
+
//# sourceMappingURL=requirement.js.map
|
|
104
|
+
//# sourceMappingURL=requirement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/requirement.ts"],"names":["Requirement","name","state","enabled","middlewares","_priority","priority","value","ValueError","emitter","Emitter","root","child","namespace","toCamelCase","creator","run","RunContext","enter","signal","undefined","params","context","_run","init","tools","_","emit","clone","instance","Object","create","getPrototypeOf","enumerable","RequirementError","FrameworkError","message","requirement","cause","isFatal","isRetryable"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBO,MAAeA,WAAAA,CAAAA;AAAAA,EAAAA;;;AACbC,EAAAA,IAAAA;AACAC,EAAAA,KAAAA,GAA6B,EAAC;EAC9BC,OAAAA,GAAU,IAAA;AACVC,EAAAA,WAAAA,GAA6C,EAAA;EAE1CC,SAAAA,GAAY,EAAA;AAEtB,EAAA,WAAA,CAAYJ,IAAAA,EAAe;AACzB,IAAA,IAAA,CAAKA,IAAAA,GAAOA,IAAAA,IAAQ,IAAA,CAAK,WAAA,CAAYA,IAAAA;AACvC;AAEA,EAAA,IAAIK,QAAAA,GAAmB;AACrB,IAAA,OAAO,IAAA,CAAKD,SAAAA;AACd;AAEA,EAAA,IAAIC,SAASC,KAAAA,EAAe;AAC1B,IAAA,IAAIA,SAAS,CAAA,EAAG;AACd,MAAA,MAAM,IAAIC,WAAW,sCAAA,CAAA;AACvB;AACA,IAAA,IAAA,CAAKH,SAAAA,GAAYE,KAAAA;AACnB;AAEA,EAAA,IACIE,OAAAA,GAAyC;AAC3C,IAAA,OAAOC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,aAAA;AAAeC,QAAAA,WAAAA,CAAY,KAAKb,IAAI;;MAChDc,OAAAA,EAAS;KACX,CAAA;AACF;AAEAC,EAAAA,GAAAA,CAAId,KAAAA,EAAiC;AACnC,IAAA,OAAOe,UAAAA,CAAWC,MAChB,IAAA,EACA;MAAEC,MAAAA,EAAQC,MAAAA;MAAWC,MAAAA,EAAQ;AAACnB,QAAAA;;AAAgB,KAAA,EAC9C,OAAOoB,OAAAA,KAAAA;AACL,MAAA,OAAO,MAAM,IAAA,CAAKC,IAAAA,CAAKrB,KAAAA,EAAOoB,OAAAA,CAAAA;KAChC,CAAA;AAEJ;EAIA,MAAME,IAAAA,CAAKC,OAAkBC,CAAAA,EAAmC;AAC9D,IAAA,MAAM,IAAA,CAAKjB,OAAAA,CAAQkB,IAAAA,CAAK,MAAA,EAAQ;AAAEF,MAAAA;KAAM,CAAA;AAC1C;AAEA,EAAA,MAAMG,KAAAA,GAAuB;AAC3B,IAAA,MAAMC,WAAWC,MAAAA,CAAOC,MAAAA,CAAOD,MAAAA,CAAOE,cAAAA,CAAe,IAAI,CAAA,CAAA;AACzDH,IAAAA,QAAAA,CAAS5B,OAAO,IAAA,CAAKA,IAAAA;AACrB4B,IAAAA,QAAAA,CAASvB,WAAW,IAAA,CAAKA,QAAAA;AACzBuB,IAAAA,QAAAA,CAAS1B,UAAU,IAAA,CAAKA,OAAAA;AACxB0B,IAAAA,QAAAA,CAAS3B,KAAAA,GAAQ;AAAE,MAAA,GAAG,IAAA,CAAKA;AAAM,KAAA;AACjC2B,IAAAA,QAAAA,CAASzB,WAAAA,GAAc;SAAI,IAAA,CAAKA;;AAChC,IAAA,OAAOyB,QAAAA;AACT;AACF;;;IAjCWI,UAAAA,EAAY;;;;;AAoChB,MAAMC,yBAAyBC,cAAAA,CAAAA;AAAAA,EAAAA;;;;EACpC,WAAA,CACEC,OAAAA,EACgBC,WAAAA,EAChBC,KAAAA,EACAhB,OAAAA,EACA;AACA,IAAA,KAAA,CAAMc,SAASE,KAAAA,GAAQ;AAACA,MAAAA;QAASlB,MAAAA,EAAW;MAC1CmB,OAAAA,EAAS,IAAA;MACTC,WAAAA,EAAa,KAAA;AACblB,MAAAA;KACF,CAAA,EAAA,KARgBe,WAAAA,GAAAA,WAAAA;AASlB;AACF","file":"requirement.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool } from \"@/tools/base.js\";\nimport { MiddlewareType, RunContext } from \"@/context.js\";\nimport { Callback, Emitter } from \"@/emitter/emitter.js\";\nimport { FrameworkError, ValueError } from \"@/errors.js\";\nimport { toCamelCase } from \"remeda\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\n// Rule definition\nexport interface Rule {\n target: string;\n allowed: boolean;\n reason?: string;\n preventStop: boolean;\n forced: boolean;\n hidden: boolean;\n}\n\n// Base Requirement class\nexport abstract class Requirement {\n public name: string;\n public state: Record<string, any> = {};\n public enabled = true;\n public middlewares: MiddlewareType<typeof this>[] = [];\n\n protected _priority = 10;\n\n constructor(name?: string) {\n this.name = name || this.constructor.name;\n }\n\n get priority(): number {\n return this._priority;\n }\n\n set priority(value: number) {\n if (value <= 0) {\n throw new ValueError(\"Priority must be a positive integer.\");\n }\n this._priority = value;\n }\n\n @Cache({ enumerable: false })\n get emitter(): Emitter<RequirementCallbacks> {\n return Emitter.root.child({\n namespace: [\"requirement\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n run(state: RequirementAgentRunState) {\n return RunContext.enter(\n this,\n { signal: undefined, params: [state] as const },\n async (context) => {\n return await this._run(state, context);\n },\n );\n }\n\n abstract _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]>;\n\n async init(tools: AnyTool[], _: RunContext<any>): Promise<void> {\n await this.emitter.emit(\"init\", { tools });\n }\n\n async clone(): Promise<this> {\n const instance = Object.create(Object.getPrototypeOf(this));\n instance.name = this.name;\n instance.priority = this.priority;\n instance.enabled = this.enabled;\n instance.state = { ...this.state };\n instance.middlewares = [...this.middlewares];\n return instance;\n }\n}\n\n// Requirement error\nexport class RequirementError extends FrameworkError {\n constructor(\n message: string,\n public readonly requirement?: Requirement,\n cause?: Error,\n context?: Record<string, any>,\n ) {\n super(message, cause ? [cause] : undefined, {\n isFatal: true,\n isRetryable: false,\n context,\n });\n }\n}\n\nexport interface RequirementCallbacks {\n init: Callback<{ tools: AnyTool[] }>;\n}\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var base_cjs = require('../../../tools/base.cjs');
|
|
4
|
+
var errors_cjs = require('../../../errors.cjs');
|
|
5
|
+
var remeda = require('remeda');
|
|
6
|
+
var prototype_cjs = require('../../../internals/helpers/prototype.cjs');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
function extractTargetName(target) {
|
|
11
|
+
if (typeof target === "string") {
|
|
12
|
+
return target;
|
|
13
|
+
}
|
|
14
|
+
if (typeof target === "function") {
|
|
15
|
+
return target.name;
|
|
16
|
+
}
|
|
17
|
+
return target.name;
|
|
18
|
+
}
|
|
19
|
+
__name(extractTargetName, "extractTargetName");
|
|
20
|
+
function extractTargets(targets) {
|
|
21
|
+
if (!targets) {
|
|
22
|
+
return /* @__PURE__ */ new Set();
|
|
23
|
+
}
|
|
24
|
+
const targetArray = Array.isArray(targets) ? targets : [
|
|
25
|
+
targets
|
|
26
|
+
];
|
|
27
|
+
return new Set(targetArray);
|
|
28
|
+
}
|
|
29
|
+
__name(extractTargets, "extractTargets");
|
|
30
|
+
function targetSeenIn(target, haystack) {
|
|
31
|
+
if (!target) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
if (!(haystack instanceof Set)) {
|
|
35
|
+
haystack = /* @__PURE__ */ new Set([
|
|
36
|
+
haystack
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
for (const needle of haystack.values()) {
|
|
40
|
+
if (remeda.isString(needle) && needle === target.name) {
|
|
41
|
+
return needle;
|
|
42
|
+
}
|
|
43
|
+
if (needle instanceof base_cjs.Tool && needle === target) {
|
|
44
|
+
return needle;
|
|
45
|
+
}
|
|
46
|
+
if (prototype_cjs.isConstructor(needle) && target instanceof needle) {
|
|
47
|
+
return needle;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
__name(targetSeenIn, "targetSeenIn");
|
|
53
|
+
function assertAllRulesFound(targets, tools) {
|
|
54
|
+
for (const target of targets) {
|
|
55
|
+
let found = false;
|
|
56
|
+
for (const tool of tools) {
|
|
57
|
+
if (targetSeenIn(tool, target)) {
|
|
58
|
+
found = true;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!found) {
|
|
63
|
+
throw new errors_cjs.ValueError(`Tool '${target}' is specified as 'source', 'before', 'after' or 'force_after' but not found.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
__name(assertAllRulesFound, "assertAllRulesFound");
|
|
68
|
+
|
|
69
|
+
exports.assertAllRulesFound = assertAllRulesFound;
|
|
70
|
+
exports.extractTargetName = extractTargetName;
|
|
71
|
+
exports.extractTargets = extractTargets;
|
|
72
|
+
exports.targetSeenIn = targetSeenIn;
|
|
73
|
+
//# sourceMappingURL=utils.cjs.map
|
|
74
|
+
//# sourceMappingURL=utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/utils.ts"],"names":["extractTargetName","target","name","extractTargets","targets","Set","targetArray","Array","isArray","targetSeenIn","haystack","needle","values","isString","Tool","isConstructor","assertAllRulesFound","tools","found","tool","ValueError"],"mappings":";;;;;;;;;AAgBO,SAASA,kBAAkBC,MAAAA,EAAkB;AAClD,EAAA,IAAI,OAAOA,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAOA,MAAAA;AACT;AACA,EAAA,IAAI,OAAOA,WAAW,UAAA,EAAY;AAChC,IAAA,OAAOA,MAAAA,CAAOC,IAAAA;AAChB;AACA,EAAA,OAAOD,MAAAA,CAAOC,IAAAA;AAChB;AARgBF,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAaT,SAASG,eAAeC,OAAAA,EAAyB;AACtD,EAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,IAAA,2BAAWC,GAAAA,EAAAA;AACb;AAEA,EAAA,MAAMC,WAAAA,GAAcC,KAAAA,CAAMC,OAAAA,CAAQJ,OAAAA,IAAWA,OAAAA,GAAU;AAACA,IAAAA;;AACxD,EAAA,OAAO,IAAIC,IAAIC,WAAAA,CAAAA;AACjB;AAPgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAYT,SAASM,YAAAA,CACdR,QACAS,QAAAA,EAAsC;AAEtC,EAAA,IAAI,CAACT,MAAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AACT;AAEA,EAAA,IAAI,EAAES,oBAAoBL,GAAAA,CAAAA,EAAM;AAC9BK,IAAAA,QAAAA,uBAAeL,GAAAA,CAAI;AAACK,MAAAA;AAAS,KAAA,CAAA;AAC/B;AAEA,EAAA,KAAA,MAAWC,MAAAA,IAAUD,QAAAA,CAASE,MAAAA,EAAM,EAAI;AACtC,IAAA,IAAIC,eAAAA,CAASF,MAAAA,CAAAA,IAAWA,MAAAA,KAAWV,OAAOC,IAAAA,EAAM;AAC9C,MAAA,OAAOS,MAAAA;AACT;AACA,IAAA,IAAIA,MAAAA,YAAkBG,aAAAA,IAAQH,MAAAA,KAAWV,MAAAA,EAAQ;AAC/C,MAAA,OAAOU,MAAAA;AACT;AACA,IAAA,IAAII,2BAAAA,CAAcJ,MAAAA,CAAAA,IAAWV,MAAAA,YAAkBU,MAAAA,EAAQ;AACrD,MAAA,OAAOA,MAAAA;AACT;AACF;AAEA,EAAA,OAAO,IAAA;AACT;AAzBgBF,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AA8BT,SAASO,mBAAAA,CAAoBZ,SAA0Ba,KAAAA,EAAgB;AAC5E,EAAA,KAAA,MAAWhB,UAAUG,OAAAA,EAAS;AAC5B,IAAA,IAAIc,KAAAA,GAAQ,KAAA;AACZ,IAAA,KAAA,MAAWC,QAAQF,KAAAA,EAAO;AACxB,MAAA,IAAIR,YAAAA,CAAaU,IAAAA,EAAMlB,MAAAA,CAAAA,EAAS;AAC9BiB,QAAAA,KAAAA,GAAQ,IAAA;AACR,QAAA;AACF;AACF;AACA,IAAA,IAAI,CAACA,KAAAA,EAAO;AACV,MAAA,MAAM,IAAIE,qBAAAA,CACR,CAAA,MAAA,EAASnB,MAAAA,CAAAA,6EAAAA,CAAqF,CAAA;AAElG;AACF;AACF;AAfgBe,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"utils.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, AnyToolClass, Tool } from \"@/tools/base.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString } from \"remeda\";\nimport { isConstructor } from \"@/internals/helpers/prototype.js\";\n\nexport type TargetType = string | AnyTool | AnyToolClass;\nexport type MultiTargetType = TargetType | TargetType[];\n\n/**\n * Extract target name from various input types\n */\nexport function extractTargetName(target: TargetType): string {\n if (typeof target === \"string\") {\n return target;\n }\n if (typeof target === \"function\") {\n return target.name;\n }\n return target.name;\n}\n\n/**\n * Extract set of target names from various input types\n */\nexport function extractTargets(targets?: MultiTargetType): Set<TargetType> {\n if (!targets) {\n return new Set();\n }\n\n const targetArray = Array.isArray(targets) ? targets : [targets];\n return new Set(targetArray);\n}\n\n/**\n * Check if a tool matches any target in the set\n */\nexport function targetSeenIn(\n target: AnyTool | null | undefined,\n haystack: Set<TargetType> | TargetType,\n): TargetType | null {\n if (!target) {\n return null;\n }\n\n if (!(haystack instanceof Set)) {\n haystack = new Set([haystack]);\n }\n\n for (const needle of haystack.values()) {\n if (isString(needle) && needle === target.name) {\n return needle;\n }\n if (needle instanceof Tool && needle === target) {\n return needle;\n }\n if (isConstructor(needle) && target instanceof needle) {\n return needle;\n }\n }\n\n return null;\n}\n\n/**\n * Assert that all targets exist in the tools list\n */\nexport function assertAllRulesFound(targets: Set<TargetType>, tools: AnyTool[]): void {\n for (const target of targets) {\n let found = false;\n for (const tool of tools) {\n if (targetSeenIn(tool, target)) {\n found = true;\n break;\n }\n }\n if (!found) {\n throw new ValueError(\n `Tool '${target}' is specified as 'source', 'before', 'after' or 'force_after' but not found.`,\n );\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AnyTool, AnyToolClass } from '../../../tools/base.cjs';
|
|
2
|
+
import 'ajv';
|
|
3
|
+
import '../../../context.cjs';
|
|
4
|
+
import '../../../emitter-CGKd_-kK.cjs';
|
|
5
|
+
import '../../../internals/types.cjs';
|
|
6
|
+
import '../../../internals/helpers/guards.cjs';
|
|
7
|
+
import '../../../internals/serializable.cjs';
|
|
8
|
+
import '../../../internals/helpers/promise.cjs';
|
|
9
|
+
import '../../../errors.cjs';
|
|
10
|
+
import 'promise-based-task';
|
|
11
|
+
import '../../../cache/base.cjs';
|
|
12
|
+
import '../../../internals/helpers/schema.cjs';
|
|
13
|
+
import 'zod';
|
|
14
|
+
import 'zod-to-json-schema';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
18
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
type TargetType = string | AnyTool | AnyToolClass;
|
|
22
|
+
type MultiTargetType = TargetType | TargetType[];
|
|
23
|
+
/**
|
|
24
|
+
* Extract target name from various input types
|
|
25
|
+
*/
|
|
26
|
+
declare function extractTargetName(target: TargetType): string;
|
|
27
|
+
/**
|
|
28
|
+
* Extract set of target names from various input types
|
|
29
|
+
*/
|
|
30
|
+
declare function extractTargets(targets?: MultiTargetType): Set<TargetType>;
|
|
31
|
+
/**
|
|
32
|
+
* Check if a tool matches any target in the set
|
|
33
|
+
*/
|
|
34
|
+
declare function targetSeenIn(target: AnyTool | null | undefined, haystack: Set<TargetType> | TargetType): TargetType | null;
|
|
35
|
+
/**
|
|
36
|
+
* Assert that all targets exist in the tools list
|
|
37
|
+
*/
|
|
38
|
+
declare function assertAllRulesFound(targets: Set<TargetType>, tools: AnyTool[]): void;
|
|
39
|
+
|
|
40
|
+
export { type MultiTargetType, type TargetType, assertAllRulesFound, extractTargetName, extractTargets, targetSeenIn };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AnyTool, AnyToolClass } from '../../../tools/base.js';
|
|
2
|
+
import 'ajv';
|
|
3
|
+
import '../../../context.js';
|
|
4
|
+
import '../../../emitter-CN7I4uSV.js';
|
|
5
|
+
import '../../../internals/types.js';
|
|
6
|
+
import '../../../internals/helpers/guards.js';
|
|
7
|
+
import '../../../internals/serializable.js';
|
|
8
|
+
import '../../../internals/helpers/promise.js';
|
|
9
|
+
import '../../../errors.js';
|
|
10
|
+
import 'promise-based-task';
|
|
11
|
+
import '../../../cache/base.js';
|
|
12
|
+
import '../../../internals/helpers/schema.js';
|
|
13
|
+
import 'zod';
|
|
14
|
+
import 'zod-to-json-schema';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
18
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
type TargetType = string | AnyTool | AnyToolClass;
|
|
22
|
+
type MultiTargetType = TargetType | TargetType[];
|
|
23
|
+
/**
|
|
24
|
+
* Extract target name from various input types
|
|
25
|
+
*/
|
|
26
|
+
declare function extractTargetName(target: TargetType): string;
|
|
27
|
+
/**
|
|
28
|
+
* Extract set of target names from various input types
|
|
29
|
+
*/
|
|
30
|
+
declare function extractTargets(targets?: MultiTargetType): Set<TargetType>;
|
|
31
|
+
/**
|
|
32
|
+
* Check if a tool matches any target in the set
|
|
33
|
+
*/
|
|
34
|
+
declare function targetSeenIn(target: AnyTool | null | undefined, haystack: Set<TargetType> | TargetType): TargetType | null;
|
|
35
|
+
/**
|
|
36
|
+
* Assert that all targets exist in the tools list
|
|
37
|
+
*/
|
|
38
|
+
declare function assertAllRulesFound(targets: Set<TargetType>, tools: AnyTool[]): void;
|
|
39
|
+
|
|
40
|
+
export { type MultiTargetType, type TargetType, assertAllRulesFound, extractTargetName, extractTargets, targetSeenIn };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Tool } from '../../../tools/base.js';
|
|
2
|
+
import { ValueError } from '../../../errors.js';
|
|
3
|
+
import { isString } from 'remeda';
|
|
4
|
+
import { isConstructor } from '../../../internals/helpers/prototype.js';
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
function extractTargetName(target) {
|
|
9
|
+
if (typeof target === "string") {
|
|
10
|
+
return target;
|
|
11
|
+
}
|
|
12
|
+
if (typeof target === "function") {
|
|
13
|
+
return target.name;
|
|
14
|
+
}
|
|
15
|
+
return target.name;
|
|
16
|
+
}
|
|
17
|
+
__name(extractTargetName, "extractTargetName");
|
|
18
|
+
function extractTargets(targets) {
|
|
19
|
+
if (!targets) {
|
|
20
|
+
return /* @__PURE__ */ new Set();
|
|
21
|
+
}
|
|
22
|
+
const targetArray = Array.isArray(targets) ? targets : [
|
|
23
|
+
targets
|
|
24
|
+
];
|
|
25
|
+
return new Set(targetArray);
|
|
26
|
+
}
|
|
27
|
+
__name(extractTargets, "extractTargets");
|
|
28
|
+
function targetSeenIn(target, haystack) {
|
|
29
|
+
if (!target) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
if (!(haystack instanceof Set)) {
|
|
33
|
+
haystack = /* @__PURE__ */ new Set([
|
|
34
|
+
haystack
|
|
35
|
+
]);
|
|
36
|
+
}
|
|
37
|
+
for (const needle of haystack.values()) {
|
|
38
|
+
if (isString(needle) && needle === target.name) {
|
|
39
|
+
return needle;
|
|
40
|
+
}
|
|
41
|
+
if (needle instanceof Tool && needle === target) {
|
|
42
|
+
return needle;
|
|
43
|
+
}
|
|
44
|
+
if (isConstructor(needle) && target instanceof needle) {
|
|
45
|
+
return needle;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
__name(targetSeenIn, "targetSeenIn");
|
|
51
|
+
function assertAllRulesFound(targets, tools) {
|
|
52
|
+
for (const target of targets) {
|
|
53
|
+
let found = false;
|
|
54
|
+
for (const tool of tools) {
|
|
55
|
+
if (targetSeenIn(tool, target)) {
|
|
56
|
+
found = true;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (!found) {
|
|
61
|
+
throw new ValueError(`Tool '${target}' is specified as 'source', 'before', 'after' or 'force_after' but not found.`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
__name(assertAllRulesFound, "assertAllRulesFound");
|
|
66
|
+
|
|
67
|
+
export { assertAllRulesFound, extractTargetName, extractTargets, targetSeenIn };
|
|
68
|
+
//# sourceMappingURL=utils.js.map
|
|
69
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/requirements/utils.ts"],"names":["extractTargetName","target","name","extractTargets","targets","Set","targetArray","Array","isArray","targetSeenIn","haystack","needle","values","isString","Tool","isConstructor","assertAllRulesFound","tools","found","tool","ValueError"],"mappings":";;;;;;;AAgBO,SAASA,kBAAkBC,MAAAA,EAAkB;AAClD,EAAA,IAAI,OAAOA,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAOA,MAAAA;AACT;AACA,EAAA,IAAI,OAAOA,WAAW,UAAA,EAAY;AAChC,IAAA,OAAOA,MAAAA,CAAOC,IAAAA;AAChB;AACA,EAAA,OAAOD,MAAAA,CAAOC,IAAAA;AAChB;AARgBF,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAaT,SAASG,eAAeC,OAAAA,EAAyB;AACtD,EAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,IAAA,2BAAWC,GAAAA,EAAAA;AACb;AAEA,EAAA,MAAMC,WAAAA,GAAcC,KAAAA,CAAMC,OAAAA,CAAQJ,OAAAA,IAAWA,OAAAA,GAAU;AAACA,IAAAA;;AACxD,EAAA,OAAO,IAAIC,IAAIC,WAAAA,CAAAA;AACjB;AAPgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAYT,SAASM,YAAAA,CACdR,QACAS,QAAAA,EAAsC;AAEtC,EAAA,IAAI,CAACT,MAAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AACT;AAEA,EAAA,IAAI,EAAES,oBAAoBL,GAAAA,CAAAA,EAAM;AAC9BK,IAAAA,QAAAA,uBAAeL,GAAAA,CAAI;AAACK,MAAAA;AAAS,KAAA,CAAA;AAC/B;AAEA,EAAA,KAAA,MAAWC,MAAAA,IAAUD,QAAAA,CAASE,MAAAA,EAAM,EAAI;AACtC,IAAA,IAAIC,QAAAA,CAASF,MAAAA,CAAAA,IAAWA,MAAAA,KAAWV,OAAOC,IAAAA,EAAM;AAC9C,MAAA,OAAOS,MAAAA;AACT;AACA,IAAA,IAAIA,MAAAA,YAAkBG,IAAAA,IAAQH,MAAAA,KAAWV,MAAAA,EAAQ;AAC/C,MAAA,OAAOU,MAAAA;AACT;AACA,IAAA,IAAII,aAAAA,CAAcJ,MAAAA,CAAAA,IAAWV,MAAAA,YAAkBU,MAAAA,EAAQ;AACrD,MAAA,OAAOA,MAAAA;AACT;AACF;AAEA,EAAA,OAAO,IAAA;AACT;AAzBgBF,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AA8BT,SAASO,mBAAAA,CAAoBZ,SAA0Ba,KAAAA,EAAgB;AAC5E,EAAA,KAAA,MAAWhB,UAAUG,OAAAA,EAAS;AAC5B,IAAA,IAAIc,KAAAA,GAAQ,KAAA;AACZ,IAAA,KAAA,MAAWC,QAAQF,KAAAA,EAAO;AACxB,MAAA,IAAIR,YAAAA,CAAaU,IAAAA,EAAMlB,MAAAA,CAAAA,EAAS;AAC9BiB,QAAAA,KAAAA,GAAQ,IAAA;AACR,QAAA;AACF;AACF;AACA,IAAA,IAAI,CAACA,KAAAA,EAAO;AACV,MAAA,MAAM,IAAIE,UAAAA,CACR,CAAA,MAAA,EAASnB,MAAAA,CAAAA,6EAAAA,CAAqF,CAAA;AAElG;AACF;AACF;AAfgBe,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool, AnyToolClass, Tool } from \"@/tools/base.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString } from \"remeda\";\nimport { isConstructor } from \"@/internals/helpers/prototype.js\";\n\nexport type TargetType = string | AnyTool | AnyToolClass;\nexport type MultiTargetType = TargetType | TargetType[];\n\n/**\n * Extract target name from various input types\n */\nexport function extractTargetName(target: TargetType): string {\n if (typeof target === \"string\") {\n return target;\n }\n if (typeof target === \"function\") {\n return target.name;\n }\n return target.name;\n}\n\n/**\n * Extract set of target names from various input types\n */\nexport function extractTargets(targets?: MultiTargetType): Set<TargetType> {\n if (!targets) {\n return new Set();\n }\n\n const targetArray = Array.isArray(targets) ? targets : [targets];\n return new Set(targetArray);\n}\n\n/**\n * Check if a tool matches any target in the set\n */\nexport function targetSeenIn(\n target: AnyTool | null | undefined,\n haystack: Set<TargetType> | TargetType,\n): TargetType | null {\n if (!target) {\n return null;\n }\n\n if (!(haystack instanceof Set)) {\n haystack = new Set([haystack]);\n }\n\n for (const needle of haystack.values()) {\n if (isString(needle) && needle === target.name) {\n return needle;\n }\n if (needle instanceof Tool && needle === target) {\n return needle;\n }\n if (isConstructor(needle) && target instanceof needle) {\n return needle;\n }\n }\n\n return null;\n}\n\n/**\n * Assert that all targets exist in the tools list\n */\nexport function assertAllRulesFound(targets: Set<TargetType>, tools: AnyTool[]): void {\n for (const target of targets) {\n let found = false;\n for (const tool of tools) {\n if (targetSeenIn(tool, target)) {\n found = true;\n break;\n }\n }\n if (!found) {\n throw new ValueError(\n `Tool '${target}' is specified as 'source', 'before', 'after' or 'force_after' but not found.`,\n );\n }\n }\n}\n"]}
|