beeai-framework 0.1.12 → 0.1.14
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/amazon-bedrock/backend/client.cjs +3 -1
- package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.js +3 -1
- package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
- package/dist/adapters/anthropic/backend/client.cjs +3 -1
- package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/client.js +3 -1
- package/dist/adapters/anthropic/backend/client.js.map +1 -1
- package/dist/adapters/azure-openai/backend/client.cjs +3 -1
- package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/client.js +3 -1
- package/dist/adapters/azure-openai/backend/client.js.map +1 -1
- package/dist/adapters/google-vertex/backend/client.cjs +3 -1
- package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/client.js +3 -1
- package/dist/adapters/google-vertex/backend/client.js.map +1 -1
- package/dist/adapters/groq/backend/client.cjs +3 -1
- package/dist/adapters/groq/backend/client.cjs.map +1 -1
- package/dist/adapters/groq/backend/client.js +3 -1
- package/dist/adapters/groq/backend/client.js.map +1 -1
- package/dist/adapters/ollama/backend/client.cjs +3 -1
- package/dist/adapters/ollama/backend/client.cjs.map +1 -1
- package/dist/adapters/ollama/backend/client.js +3 -1
- package/dist/adapters/ollama/backend/client.js.map +1 -1
- package/dist/adapters/openai/backend/client.cjs +3 -1
- package/dist/adapters/openai/backend/client.cjs.map +1 -1
- package/dist/adapters/openai/backend/client.js +3 -1
- package/dist/adapters/openai/backend/client.js.map +1 -1
- package/dist/adapters/vercel/backend/chat.cjs +7 -3
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.js +8 -4
- package/dist/adapters/vercel/backend/chat.js.map +1 -1
- package/dist/adapters/vercel/backend/utils.cjs +82 -0
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -0
- package/dist/adapters/vercel/backend/utils.d.cts +30 -0
- package/dist/adapters/vercel/backend/utils.d.ts +30 -0
- package/dist/adapters/vercel/backend/utils.js +78 -0
- package/dist/adapters/vercel/backend/utils.js.map +1 -0
- package/dist/{agent-2C0Z9iYa.d.cts → agent-B60_2RXt.d.cts} +1 -1
- package/dist/{agent-DN_52QhH.d.ts → agent-BgLMNZbc.d.ts} +1 -1
- package/dist/agents/experimental/remote/agent.cjs +107 -61
- package/dist/agents/experimental/remote/agent.cjs.map +1 -1
- package/dist/agents/experimental/remote/agent.d.cts +37 -34
- package/dist/agents/experimental/remote/agent.d.ts +37 -34
- package/dist/agents/experimental/remote/agent.js +108 -62
- package/dist/agents/experimental/remote/agent.js.map +1 -1
- package/dist/agents/react/agent.d.cts +1 -1
- package/dist/agents/react/agent.d.ts +1 -1
- package/dist/agents/react/runners/base.d.cts +1 -1
- package/dist/agents/react/runners/base.d.ts +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.cts +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.ts +1 -1
- package/dist/agents/react/runners/default/runner.d.cts +1 -1
- package/dist/agents/react/runners/default/runner.d.ts +1 -1
- package/dist/agents/react/runners/granite/runner.d.cts +1 -1
- package/dist/agents/react/runners/granite/runner.d.ts +1 -1
- package/dist/internals/fetcher.cjs +31 -8
- package/dist/internals/fetcher.cjs.map +1 -1
- package/dist/internals/fetcher.d.cts +5 -3
- package/dist/internals/fetcher.d.ts +5 -3
- package/dist/internals/fetcher.js +32 -9
- package/dist/internals/fetcher.js.map +1 -1
- package/dist/tools/database/milvus.d.cts +2 -2
- package/dist/tools/database/milvus.d.ts +2 -2
- package/dist/tools/database/qdrant.cjs +174 -0
- package/dist/tools/database/qdrant.cjs.map +1 -0
- package/dist/tools/database/qdrant.d.cts +86 -0
- package/dist/tools/database/qdrant.d.ts +86 -0
- package/dist/tools/database/qdrant.js +171 -0
- package/dist/tools/database/qdrant.js.map +1 -0
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Tool, ToolInputValidationError, ToolError, JSONToolOutput } from '../base.js';
|
|
2
|
+
import { Cache } from '../../cache/decoratorCache.js';
|
|
3
|
+
import { QdrantClient } from '@qdrant/js-client-rest';
|
|
4
|
+
import { v4 } from 'uuid';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { Emitter } from '../../emitter/emitter.js';
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
11
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
12
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
13
|
+
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;
|
|
14
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
15
|
+
}
|
|
16
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
17
|
+
function _ts_metadata(k, v) {
|
|
18
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
19
|
+
}
|
|
20
|
+
__name(_ts_metadata, "_ts_metadata");
|
|
21
|
+
var QdrantAction = /* @__PURE__ */ function(QdrantAction2) {
|
|
22
|
+
QdrantAction2["ListCollections"] = "ListCollections";
|
|
23
|
+
QdrantAction2["GetCollectionInfo"] = "GetCollectionInfo";
|
|
24
|
+
QdrantAction2["Search"] = "Search";
|
|
25
|
+
QdrantAction2["Insert"] = "Insert";
|
|
26
|
+
QdrantAction2["Delete"] = "Delete";
|
|
27
|
+
return QdrantAction2;
|
|
28
|
+
}({});
|
|
29
|
+
class QdrantDatabaseTool extends Tool {
|
|
30
|
+
static {
|
|
31
|
+
__name(this, "QdrantDatabaseTool");
|
|
32
|
+
}
|
|
33
|
+
name = "QdrantDatabaseTool";
|
|
34
|
+
description = `Can query data from a Qdrant vector database. IMPORTANT: strictly follow this order of actions:
|
|
35
|
+
1. ${"ListCollections"} - List all the Qdrant collections
|
|
36
|
+
2. ${"GetCollectionInfo"} - Get information about a Qdrant collection
|
|
37
|
+
3. ${"Insert"} - Insert data into a Qdrant collection
|
|
38
|
+
3. ${"Search"} - Perform search on a Qdrant collection
|
|
39
|
+
4. ${"Delete"} - Delete from a Qdrant collection`;
|
|
40
|
+
inputSchema() {
|
|
41
|
+
return z.object({
|
|
42
|
+
action: z.nativeEnum(QdrantAction).describe(`The action to perform. ${"ListCollections"} lists all collections, ${"GetCollectionInfo"} fetches details for a specified collection, ${"Search"} executes a vector search, ${"Insert"} inserts new vectors, and ${"Delete"} removes vectors.`),
|
|
43
|
+
collectionName: z.string().optional().describe(`The name of the collection to query, required for ${"GetCollectionInfo"}, ${"Search"}, ${"Insert"}, and ${"Delete"}`),
|
|
44
|
+
vector: z.array(z.number()).optional().describe(`The vector to search for, required for ${"Search"}.`),
|
|
45
|
+
vectors: z.array(z.array(z.number())).optional().describe(`The vectors to insert, required for ${"Insert"}.`),
|
|
46
|
+
topK: z.coerce.number().int().default(10).optional().describe(`The number of nearest neighbors to return.`),
|
|
47
|
+
filter: z.record(z.string(), z.any()).optional().describe(`Optional filter for ${"Search"}.`),
|
|
48
|
+
payload: z.array(z.record(z.string(), z.any())).optional().describe(`Additional payload to insert with vectors.`),
|
|
49
|
+
ids: z.array(z.string().or(z.number())).optional().describe(`Array of IDs to delete or insert.`)
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
emitter = Emitter.root.child({
|
|
53
|
+
namespace: [
|
|
54
|
+
"tool",
|
|
55
|
+
"database",
|
|
56
|
+
"qdrant"
|
|
57
|
+
],
|
|
58
|
+
creator: this
|
|
59
|
+
});
|
|
60
|
+
validateInput(schema, input) {
|
|
61
|
+
super.validateInput(schema, input);
|
|
62
|
+
if (input.action != "ListCollections" && !input.collectionName) {
|
|
63
|
+
throw new ToolInputValidationError(`Collection name is required for ${"GetCollectionInfo"}, ${"Search"}, ${"Insert"}, and ${"Delete"} actions.`);
|
|
64
|
+
}
|
|
65
|
+
if (input.action === "Search" && (!input.collectionName || !input.vector)) {
|
|
66
|
+
throw new ToolInputValidationError(`Vector is required for ${"Search"} action.`);
|
|
67
|
+
}
|
|
68
|
+
if (input.action === "Insert" && (!input.collectionName || !input.vectors)) {
|
|
69
|
+
throw new ToolInputValidationError(`Vectors are required for ${"Insert"} action.`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
static {
|
|
73
|
+
this.register();
|
|
74
|
+
}
|
|
75
|
+
async client() {
|
|
76
|
+
return new QdrantClient(this.options.connection);
|
|
77
|
+
}
|
|
78
|
+
async _run(input, _options) {
|
|
79
|
+
switch (input.action) {
|
|
80
|
+
case "ListCollections": {
|
|
81
|
+
const collections = await this.listCollections();
|
|
82
|
+
return new JSONToolOutput(collections);
|
|
83
|
+
}
|
|
84
|
+
case "GetCollectionInfo": {
|
|
85
|
+
if (!input.collectionName) {
|
|
86
|
+
throw new ToolError("A collection name is required for Qdrant GetCollectionInfo action");
|
|
87
|
+
}
|
|
88
|
+
const collectionInfo = await this.getCollectionInfo(input.collectionName);
|
|
89
|
+
return new JSONToolOutput(collectionInfo);
|
|
90
|
+
}
|
|
91
|
+
case "Search": {
|
|
92
|
+
if (!input.collectionName || !input.vector) {
|
|
93
|
+
throw new ToolError("A collection name and vector are required for Qdrant Search action");
|
|
94
|
+
}
|
|
95
|
+
const searchResults = await this.search(input);
|
|
96
|
+
return new JSONToolOutput(searchResults);
|
|
97
|
+
}
|
|
98
|
+
case "Insert": {
|
|
99
|
+
if (!input.collectionName || !input.vectors) {
|
|
100
|
+
throw new ToolError("A collection name and vectors are required for Qdrant Insert action");
|
|
101
|
+
}
|
|
102
|
+
const insertResults = await this.insert(input);
|
|
103
|
+
return new JSONToolOutput(insertResults);
|
|
104
|
+
}
|
|
105
|
+
case "Delete": {
|
|
106
|
+
if (!input.collectionName || !input.ids) {
|
|
107
|
+
throw new ToolError("Collection name and ids are required for Qdrant Delete action");
|
|
108
|
+
}
|
|
109
|
+
const deleteResults = await this.delete(input);
|
|
110
|
+
return new JSONToolOutput(deleteResults);
|
|
111
|
+
}
|
|
112
|
+
default: {
|
|
113
|
+
throw new ToolError(`Invalid action specified: ${input.action}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async listCollections() {
|
|
118
|
+
try {
|
|
119
|
+
const client = await this.client();
|
|
120
|
+
const response = await client.getCollections();
|
|
121
|
+
return response.collections.map((collection) => collection.name);
|
|
122
|
+
} catch (error) {
|
|
123
|
+
throw new ToolError(`Failed to list collections from Qdrant: ${error}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async getCollectionInfo(collectionName) {
|
|
127
|
+
const client = await this.client();
|
|
128
|
+
const response = await client.getCollection(collectionName);
|
|
129
|
+
return response;
|
|
130
|
+
}
|
|
131
|
+
async insert(input) {
|
|
132
|
+
const client = await this.client();
|
|
133
|
+
const points = input.vectors.map((vector, index) => ({
|
|
134
|
+
id: input?.ids?.[index] ?? v4(),
|
|
135
|
+
vector,
|
|
136
|
+
payload: input?.payload?.[index] || {}
|
|
137
|
+
}));
|
|
138
|
+
const response = await client.upsert(input.collectionName, {
|
|
139
|
+
points
|
|
140
|
+
});
|
|
141
|
+
return response;
|
|
142
|
+
}
|
|
143
|
+
async search(input) {
|
|
144
|
+
const client = await this.client();
|
|
145
|
+
const searchParams = {
|
|
146
|
+
query: input.vector,
|
|
147
|
+
limit: input.topK || 10,
|
|
148
|
+
with_payload: true,
|
|
149
|
+
filter: input.filter
|
|
150
|
+
};
|
|
151
|
+
const response = await client.query(input.collectionName, searchParams);
|
|
152
|
+
return response;
|
|
153
|
+
}
|
|
154
|
+
async delete(input) {
|
|
155
|
+
const client = await this.client();
|
|
156
|
+
const response = await client.delete(input.collectionName, {
|
|
157
|
+
points: input.ids
|
|
158
|
+
});
|
|
159
|
+
return response;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
_ts_decorate([
|
|
163
|
+
Cache(),
|
|
164
|
+
_ts_metadata("design:type", Function),
|
|
165
|
+
_ts_metadata("design:paramtypes", []),
|
|
166
|
+
_ts_metadata("design:returntype", Promise)
|
|
167
|
+
], QdrantDatabaseTool.prototype, "client", null);
|
|
168
|
+
|
|
169
|
+
export { QdrantAction, QdrantDatabaseTool };
|
|
170
|
+
//# sourceMappingURL=qdrant.js.map
|
|
171
|
+
//# sourceMappingURL=qdrant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["qdrant.ts"],"names":["QdrantAction","QdrantDatabaseTool","Tool","name","description","inputSchema","z","object","action","nativeEnum","describe","collectionName","string","optional","vector","array","number","vectors","topK","coerce","int","default","filter","record","any","payload","ids","or","emitter","Emitter","root","child","namespace","creator","validateInput","schema","input","ToolInputValidationError","register","client","QdrantClient","options","connection","_run","_options","collections","listCollections","JSONToolOutput","ToolError","collectionInfo","getCollectionInfo","searchResults","search","insertResults","insert","deleteResults","delete","response","getCollections","map","collection","error","getCollection","points","index","id","uuidv4","upsert","searchParams","query","limit","with_payload"],"mappings":"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","file":"qdrant.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Tool,\n ToolInput,\n ToolError,\n BaseToolOptions,\n BaseToolRunOptions,\n JSONToolOutput,\n ToolInputValidationError,\n ToolEmitter,\n} from \"@/tools/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { QdrantClient, QdrantClientParams } from \"@qdrant/js-client-rest\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { z } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface QdrantToolOptions extends BaseToolOptions, QdrantClientParams {\n connection: QdrantClientParams;\n}\n\nexport type QdrantSearchToolResult = any;\n\nexport enum QdrantAction {\n ListCollections = \"ListCollections\",\n GetCollectionInfo = \"GetCollectionInfo\",\n Search = \"Search\",\n Insert = \"Insert\",\n Delete = \"Delete\",\n}\n\nexport class QdrantDatabaseTool extends Tool<\n JSONToolOutput<QdrantSearchToolResult>,\n QdrantToolOptions\n> {\n name = \"QdrantDatabaseTool\";\n\n description = `Can query data from a Qdrant vector database. IMPORTANT: strictly follow this order of actions:\n 1. ${QdrantAction.ListCollections} - List all the Qdrant collections\n 2. ${QdrantAction.GetCollectionInfo} - Get information about a Qdrant collection\n 3. ${QdrantAction.Insert} - Insert data into a Qdrant collection\n 3. ${QdrantAction.Search} - Perform search on a Qdrant collection\n 4. ${QdrantAction.Delete} - Delete from a Qdrant collection`;\n\n inputSchema() {\n return z.object({\n action: z\n .nativeEnum(QdrantAction)\n .describe(\n `The action to perform. ${QdrantAction.ListCollections} lists all collections, ${QdrantAction.GetCollectionInfo} fetches details for a specified collection, ${QdrantAction.Search} executes a vector search, ${QdrantAction.Insert} inserts new vectors, and ${QdrantAction.Delete} removes vectors.`,\n ),\n collectionName: z\n .string()\n .optional()\n .describe(\n `The name of the collection to query, required for ${QdrantAction.GetCollectionInfo}, ${QdrantAction.Search}, ${QdrantAction.Insert}, and ${QdrantAction.Delete}`,\n ),\n vector: z\n .array(z.number())\n .optional()\n .describe(`The vector to search for, required for ${QdrantAction.Search}.`),\n vectors: z\n .array(z.array(z.number()))\n .optional()\n .describe(`The vectors to insert, required for ${QdrantAction.Insert}.`),\n topK: z.coerce\n .number()\n .int()\n .default(10)\n .optional()\n .describe(`The number of nearest neighbors to return.`),\n filter: z\n .record(z.string(), z.any())\n .optional()\n .describe(`Optional filter for ${QdrantAction.Search}.`),\n payload: z\n .array(z.record(z.string(), z.any()))\n .optional()\n .describe(`Additional payload to insert with vectors.`),\n ids: z\n .array(z.string().or(z.number()))\n .optional()\n .describe(`Array of IDs to delete or insert.`),\n });\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<QdrantSearchToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"database\", \"qdrant\"],\n creator: this,\n });\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n input: unknown,\n ): asserts input is ToolInput<this> {\n super.validateInput(schema, input);\n if (input.action != QdrantAction.ListCollections && !input.collectionName) {\n throw new ToolInputValidationError(\n `Collection name is required for ${QdrantAction.GetCollectionInfo}, ${QdrantAction.Search}, ${QdrantAction.Insert}, and ${QdrantAction.Delete} actions.`,\n );\n }\n if (input.action === QdrantAction.Search && (!input.collectionName || !input.vector)) {\n throw new ToolInputValidationError(`Vector is required for ${QdrantAction.Search} action.`);\n }\n if (input.action === QdrantAction.Insert && (!input.collectionName || !input.vectors)) {\n throw new ToolInputValidationError(`Vectors are required for ${QdrantAction.Insert} action.`);\n }\n }\n\n static {\n this.register();\n }\n\n @Cache()\n protected async client(): Promise<QdrantClient> {\n return new QdrantClient(this.options.connection);\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n ): Promise<JSONToolOutput<any>> {\n switch (input.action) {\n case QdrantAction.ListCollections: {\n const collections = await this.listCollections();\n return new JSONToolOutput(collections);\n }\n\n case QdrantAction.GetCollectionInfo: {\n if (!input.collectionName) {\n throw new ToolError(\"A collection name is required for Qdrant GetCollectionInfo action\");\n }\n const collectionInfo = await this.getCollectionInfo(input.collectionName);\n return new JSONToolOutput(collectionInfo);\n }\n\n case QdrantAction.Search: {\n if (!input.collectionName || !input.vector) {\n throw new ToolError(\"A collection name and vector are required for Qdrant Search action\");\n }\n const searchResults = await this.search(input);\n return new JSONToolOutput(searchResults);\n }\n\n case QdrantAction.Insert: {\n if (!input.collectionName || !input.vectors) {\n throw new ToolError(\n \"A collection name and vectors are required for Qdrant Insert action\",\n );\n }\n const insertResults = await this.insert(input);\n return new JSONToolOutput(insertResults);\n }\n\n case QdrantAction.Delete: {\n if (!input.collectionName || !input.ids) {\n throw new ToolError(\"Collection name and ids are required for Qdrant Delete action\");\n }\n const deleteResults = await this.delete(input);\n return new JSONToolOutput(deleteResults);\n }\n\n default: {\n throw new ToolError(`Invalid action specified: ${input.action}`);\n }\n }\n }\n\n protected async listCollections(): Promise<string[]> {\n try {\n const client = await this.client();\n const response = await client.getCollections();\n\n return response.collections.map((collection) => collection.name);\n } catch (error) {\n throw new ToolError(`Failed to list collections from Qdrant: ${error}`);\n }\n }\n\n protected async getCollectionInfo(collectionName: string): Promise<any> {\n const client = await this.client();\n const response = await client.getCollection(collectionName);\n return response;\n }\n\n protected async insert(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n\n const points = input.vectors!.map((vector, index) => ({\n id: input?.ids?.[index] ?? uuidv4(),\n vector: vector,\n payload: input?.payload?.[index] || {},\n }));\n\n const response = await client.upsert(input.collectionName as string, {\n points: points,\n });\n\n return response;\n }\n\n protected async search(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n\n const searchParams: any = {\n query: input.vector,\n limit: input.topK || 10,\n with_payload: true,\n filter: input.filter,\n };\n\n const response = await client.query(input.collectionName as string, searchParams);\n return response;\n }\n\n protected async delete(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n\n const response = await client.delete(input.collectionName as string, {\n points: input.ids!,\n });\n\n return response;\n }\n}\n"]}
|
package/dist/version.cjs
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beeai-framework",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "BeeAI Framework - LLM Agent Framework",
|
|
6
6
|
"author": "BeeAI a Series of LF Projects, LLC",
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
"dependencies": {
|
|
184
184
|
"@ai-zen/node-fetch-event-source": "^2.1.4",
|
|
185
185
|
"@streamparser/json": "^0.0.22",
|
|
186
|
-
"ai": "^4.3.
|
|
186
|
+
"ai": "^4.3.13",
|
|
187
187
|
"ajv": "^8.17.1",
|
|
188
188
|
"ajv-formats": "^3.0.1",
|
|
189
189
|
"duck-duck-scrape": "^2.2.7",
|
|
@@ -213,14 +213,14 @@
|
|
|
213
213
|
"@ai-sdk/azure": "^1.3.14",
|
|
214
214
|
"@ai-sdk/google-vertex": "^2.2.15",
|
|
215
215
|
"@ai-sdk/groq": "^1.2.8",
|
|
216
|
-
"@ai-sdk/openai": "^1.3.
|
|
216
|
+
"@ai-sdk/openai": "^1.3.21",
|
|
217
217
|
"@aws-sdk/client-bedrock-runtime": "^3.772.0",
|
|
218
218
|
"@elastic/elasticsearch": "^8.0.0",
|
|
219
219
|
"@googleapis/customsearch": "^3.2.0",
|
|
220
|
-
"@i-am-bee/acp-sdk": "^0.0.6",
|
|
221
220
|
"@langchain/community": ">=0.2.28",
|
|
222
221
|
"@langchain/core": ">=0.2.27",
|
|
223
222
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
223
|
+
"@qdrant/js-client-rest": "^1.14.0",
|
|
224
224
|
"@zilliz/milvus2-sdk-node": "^2.4.9",
|
|
225
225
|
"ollama-ai-provider": "^1.2.0",
|
|
226
226
|
"sequelize": "^6.37.3",
|
|
@@ -251,9 +251,6 @@
|
|
|
251
251
|
"@googleapis/customsearch": {
|
|
252
252
|
"optional": true
|
|
253
253
|
},
|
|
254
|
-
"@i-am-bee/acp-sdk": {
|
|
255
|
-
"optional": true
|
|
256
|
-
},
|
|
257
254
|
"@ibm-cloud/watsonx-ai": {
|
|
258
255
|
"optional": true
|
|
259
256
|
},
|
|
@@ -266,6 +263,9 @@
|
|
|
266
263
|
"@modelcontextprotocol/sdk": {
|
|
267
264
|
"optional": true
|
|
268
265
|
},
|
|
266
|
+
"@qdrant/js-client-rest": {
|
|
267
|
+
"optional": true
|
|
268
|
+
},
|
|
269
269
|
"@zilliz/milvus2-sdk-node": {
|
|
270
270
|
"optional": true
|
|
271
271
|
},
|
|
@@ -292,13 +292,13 @@
|
|
|
292
292
|
"@eslint/js": "^9.16.0",
|
|
293
293
|
"@eslint/markdown": "^6.2.1",
|
|
294
294
|
"@googleapis/customsearch": "^3.2.0",
|
|
295
|
-
"@i-am-bee/acp-sdk": "^0.0.4",
|
|
296
295
|
"@ibm-cloud/watsonx-ai": "^1.6.0",
|
|
297
296
|
"@langchain/community": "0.3.34",
|
|
298
297
|
"@langchain/core": "0.3.42",
|
|
299
298
|
"@langchain/langgraph": "0.2.55",
|
|
300
299
|
"@langchain/ollama": "^0.2.0",
|
|
301
300
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
301
|
+
"@qdrant/js-client-rest": "^1.14.0",
|
|
302
302
|
"@release-it/conventional-changelog": "^8.0.2",
|
|
303
303
|
"@rollup/plugin-commonjs": "^28.0.1",
|
|
304
304
|
"@stylistic/eslint-plugin-js": "^2.12.1",
|