@lapage/ai-agent 1.0.0
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/README.md +487 -0
- package/dist/index.d.ts +119 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +349 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/index.d.ts +2 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +6 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +27 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +175 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/models/embeddings-factory.d.ts +6 -0
- package/dist/models/embeddings-factory.d.ts.map +1 -0
- package/dist/models/embeddings-factory.js +84 -0
- package/dist/models/embeddings-factory.js.map +1 -0
- package/dist/models/index.d.ts +3 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +8 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/model-factory.d.ts +6 -0
- package/dist/models/model-factory.d.ts.map +1 -0
- package/dist/models/model-factory.js +75 -0
- package/dist/models/model-factory.js.map +1 -0
- package/dist/tools/index.d.ts +34 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +106 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/json-schema-to-zod.d.ts +8 -0
- package/dist/tools/json-schema-to-zod.d.ts.map +1 -0
- package/dist/tools/json-schema-to-zod.js +191 -0
- package/dist/tools/json-schema-to-zod.js.map +1 -0
- package/dist/tools/mcp-client.d.ts +8 -0
- package/dist/tools/mcp-client.d.ts.map +1 -0
- package/dist/tools/mcp-client.js +125 -0
- package/dist/tools/mcp-client.js.map +1 -0
- package/dist/tools/vector-tools.d.ts +44 -0
- package/dist/tools/vector-tools.d.ts.map +1 -0
- package/dist/tools/vector-tools.js +174 -0
- package/dist/tools/vector-tools.js.map +1 -0
- package/dist/types/index.d.ts +158 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.EmbeddingsFactory = void 0;
|
|
37
|
+
class EmbeddingsFactory {
|
|
38
|
+
static async createEmbeddings(config) {
|
|
39
|
+
const { provider, model, apiKey } = config;
|
|
40
|
+
switch (provider) {
|
|
41
|
+
case 'openai': {
|
|
42
|
+
try {
|
|
43
|
+
const { OpenAIEmbeddings } = await Promise.resolve().then(() => __importStar(require('@langchain/openai')));
|
|
44
|
+
return new OpenAIEmbeddings({
|
|
45
|
+
modelName: model,
|
|
46
|
+
apiKey: apiKey || process.env.OPENAI_API_KEY,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
throw new Error('OpenAI embeddings provider requires @langchain/openai to be installed. Run: npm install @langchain/openai');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
case 'cohere': {
|
|
54
|
+
try {
|
|
55
|
+
const { CohereEmbeddings } = await Promise.resolve().then(() => __importStar(require('@langchain/community/embeddings/cohere')));
|
|
56
|
+
return new CohereEmbeddings({
|
|
57
|
+
apiKey: apiKey || process.env.COHERE_API_KEY,
|
|
58
|
+
// Note: Model name is often built into the CohereEmbeddings class
|
|
59
|
+
// If you need to specify a model, you might need to check Cohere's documentation
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
throw new Error('Cohere embeddings provider requires @langchain/community to be installed. Run: npm install @langchain/community');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
case 'huggingface': {
|
|
67
|
+
try {
|
|
68
|
+
const { HuggingFaceInferenceEmbeddings } = await Promise.resolve().then(() => __importStar(require('@langchain/community/embeddings/hf')));
|
|
69
|
+
return new HuggingFaceInferenceEmbeddings({
|
|
70
|
+
model,
|
|
71
|
+
apiKey: apiKey || process.env.HUGGINGFACEHUB_API_TOKEN,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throw new Error('HuggingFace embeddings provider requires @langchain/community to be installed. Run: npm install @langchain/community');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
default:
|
|
79
|
+
throw new Error(`Unsupported embeddings provider: ${provider}. Supported providers: openai, cohere, huggingface`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.EmbeddingsFactory = EmbeddingsFactory;
|
|
84
|
+
//# sourceMappingURL=embeddings-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings-factory.js","sourceRoot":"","sources":["../../src/models/embeddings-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAa,iBAAiB;IAC5B,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAwB;QACpD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE3C,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;oBAC/D,OAAO,IAAI,gBAAgB,CAAC;wBAC1B,SAAS,EAAE,KAAK;wBAChB,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;qBAC7C,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACb,2GAA2G,CAC5G,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,wCAAwC,GAAC,CAAC;oBACpF,OAAO,IAAI,gBAAgB,CAAC;wBAC1B,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;wBAC5C,kEAAkE;wBAClE,iFAAiF;qBAClF,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,EAAE,8BAA8B,EAAE,GAAG,wDAAa,oCAAoC,GAAC,CAAC;oBAC9F,OAAO,IAAI,8BAA8B,CAAC;wBACxC,KAAK;wBACL,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB;qBACvD,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CACb,oCAAoC,QAAQ,oDAAoD,CACjG,CAAC;QACN,CAAC;IACH,CAAC;CACF;AAtDD,8CAsDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmbeddingsFactory = exports.ModelFactory = void 0;
|
|
4
|
+
var model_factory_1 = require("./model-factory");
|
|
5
|
+
Object.defineProperty(exports, "ModelFactory", { enumerable: true, get: function () { return model_factory_1.ModelFactory; } });
|
|
6
|
+
var embeddings_factory_1 = require("./embeddings-factory");
|
|
7
|
+
Object.defineProperty(exports, "EmbeddingsFactory", { enumerable: true, get: function () { return embeddings_factory_1.EmbeddingsFactory; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
|
+
import { ModelConfig } from '../types';
|
|
3
|
+
export declare class ModelFactory {
|
|
4
|
+
static createModel(config: ModelConfig): Promise<BaseChatModel>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=model-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-factory.d.ts","sourceRoot":"","sources":["../../src/models/model-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,qBAAa,YAAY;WACV,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CA0CtE"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ModelFactory = void 0;
|
|
37
|
+
class ModelFactory {
|
|
38
|
+
static async createModel(config) {
|
|
39
|
+
const { provider, model, temperature = 0.7, maxTokens, apiKey } = config;
|
|
40
|
+
switch (provider) {
|
|
41
|
+
case 'openai': {
|
|
42
|
+
try {
|
|
43
|
+
const { ChatOpenAI } = await Promise.resolve().then(() => __importStar(require('@langchain/openai')));
|
|
44
|
+
return new ChatOpenAI({
|
|
45
|
+
model,
|
|
46
|
+
temperature,
|
|
47
|
+
maxTokens,
|
|
48
|
+
apiKey: apiKey || process.env.OPENAI_API_KEY,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
throw new Error('OpenAI provider requires @langchain/openai to be installed. Run: npm install @langchain/openai');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
case 'anthropic': {
|
|
56
|
+
try {
|
|
57
|
+
const { ChatAnthropic } = await Promise.resolve().then(() => __importStar(require('@langchain/anthropic')));
|
|
58
|
+
return new ChatAnthropic({
|
|
59
|
+
model,
|
|
60
|
+
temperature,
|
|
61
|
+
maxTokens,
|
|
62
|
+
apiKey: apiKey || process.env.ANTHROPIC_API_KEY,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
throw new Error('Anthropic provider requires @langchain/anthropic to be installed. Run: npm install @langchain/anthropic');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
default:
|
|
70
|
+
throw new Error(`Unsupported provider: ${provider}. Supported providers: openai, anthropic`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.ModelFactory = ModelFactory;
|
|
75
|
+
//# sourceMappingURL=model-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-factory.js","sourceRoot":"","sources":["../../src/models/model-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAa,YAAY;IACvB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAmB;QAC1C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAEzE,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;oBACzD,OAAO,IAAI,UAAU,CAAC;wBACpB,KAAK;wBACL,WAAW;wBACX,SAAS;wBACT,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;qBAC7C,CAA6B,CAAC;gBACjC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;oBAC/D,OAAO,IAAI,aAAa,CAAC;wBACvB,KAAK;wBACL,WAAW;wBACX,SAAS;wBACT,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;qBAChD,CAA6B,CAAC;gBACjC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;gBACJ,CAAC;YACH,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,0CAA0C,CAC5E,CAAC;QACN,CAAC;IACH,CAAC;CACF;AA3CD,oCA2CC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Tool } from '@langchain/core/tools';
|
|
2
|
+
import type { ToolOptions } from '../types/index';
|
|
3
|
+
export declare class ToolManager {
|
|
4
|
+
private tools;
|
|
5
|
+
/**
|
|
6
|
+
* Add a tool to the manager
|
|
7
|
+
*/
|
|
8
|
+
addTool(toolOptions: ToolOptions): void;
|
|
9
|
+
/**
|
|
10
|
+
* Add multiple tools at once
|
|
11
|
+
*/
|
|
12
|
+
addTools(toolOptions: ToolOptions[]): void;
|
|
13
|
+
/**
|
|
14
|
+
* Add an existing LangChain tool
|
|
15
|
+
*/
|
|
16
|
+
addLangChainTool(tool: any): void;
|
|
17
|
+
/**
|
|
18
|
+
* Get all tools
|
|
19
|
+
*/
|
|
20
|
+
getTools(): Tool[];
|
|
21
|
+
/**
|
|
22
|
+
* Clear all tools
|
|
23
|
+
*/
|
|
24
|
+
clearTools(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Remove a tool by name
|
|
27
|
+
*/
|
|
28
|
+
removeTool(name: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Get tool by name
|
|
31
|
+
*/
|
|
32
|
+
getTool(name: string): Tool | undefined;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAa;IAE1B;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA2DvC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI;IAI1C;;OAEG;IAEH,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAIjC;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAIlB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASjC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAGxC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToolManager = void 0;
|
|
4
|
+
const tools_1 = require("@langchain/core/tools");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const json_schema_to_zod_1 = require("./json-schema-to-zod");
|
|
7
|
+
class ToolManager {
|
|
8
|
+
tools = [];
|
|
9
|
+
/**
|
|
10
|
+
* Add a tool to the manager
|
|
11
|
+
*/
|
|
12
|
+
addTool(toolOptions) {
|
|
13
|
+
if (toolOptions.schema) {
|
|
14
|
+
// Resolve schema: accept both Zod schemas and JSONSchema7 objects
|
|
15
|
+
let resolvedSchema;
|
|
16
|
+
if (toolOptions.schema instanceof zod_1.z.ZodType) {
|
|
17
|
+
resolvedSchema = toolOptions.schema;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// Treat as JSONSchema7 — convert to Zod
|
|
21
|
+
const converted = (0, json_schema_to_zod_1.convertJsonSchemaToZod)(toolOptions.schema);
|
|
22
|
+
resolvedSchema =
|
|
23
|
+
converted instanceof zod_1.z.ZodObject ? converted : zod_1.z.object({ value: converted });
|
|
24
|
+
}
|
|
25
|
+
// Use DynamicStructuredTool for tools with a schema (cast to avoid deep type inference)
|
|
26
|
+
const schemaForTool = (resolvedSchema instanceof zod_1.z.ZodObject ? resolvedSchema : zod_1.z.object({ value: resolvedSchema }));
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
const createTool = tools_1.tool;
|
|
29
|
+
const langchainTool = createTool(async (input) => {
|
|
30
|
+
try {
|
|
31
|
+
const result = await toolOptions.func(input);
|
|
32
|
+
return typeof result === 'string' ? result : JSON.stringify(result);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return `Error executing tool: ${error instanceof Error ? error.message : String(error)}`;
|
|
36
|
+
}
|
|
37
|
+
}, {
|
|
38
|
+
name: toolOptions.name,
|
|
39
|
+
description: toolOptions.description,
|
|
40
|
+
schema: schemaForTool,
|
|
41
|
+
});
|
|
42
|
+
this.tools.push(langchainTool);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Use DynamicTool for tools without schema (expects string input)
|
|
46
|
+
const langchainTool = new tools_1.DynamicTool({
|
|
47
|
+
name: toolOptions.name,
|
|
48
|
+
description: toolOptions.description,
|
|
49
|
+
func: async (input) => {
|
|
50
|
+
try {
|
|
51
|
+
const result = await toolOptions.func(input);
|
|
52
|
+
return typeof result === 'string' ? result : JSON.stringify(result);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return `Error executing tool: ${error instanceof Error ? error.message : String(error)}`;
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
this.tools.push(langchainTool);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Add multiple tools at once
|
|
64
|
+
*/
|
|
65
|
+
addTools(toolOptions) {
|
|
66
|
+
toolOptions.forEach((tool) => this.addTool(tool));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Add an existing LangChain tool
|
|
70
|
+
*/
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
|
+
addLangChainTool(tool) {
|
|
73
|
+
this.tools.push(tool);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get all tools
|
|
77
|
+
*/
|
|
78
|
+
getTools() {
|
|
79
|
+
return [...this.tools];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Clear all tools
|
|
83
|
+
*/
|
|
84
|
+
clearTools() {
|
|
85
|
+
this.tools = [];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Remove a tool by name
|
|
89
|
+
*/
|
|
90
|
+
removeTool(name) {
|
|
91
|
+
const index = this.tools.findIndex((tool) => tool.name === name);
|
|
92
|
+
if (index !== -1) {
|
|
93
|
+
this.tools.splice(index, 1);
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get tool by name
|
|
100
|
+
*/
|
|
101
|
+
getTool(name) {
|
|
102
|
+
return this.tools.find((tool) => tool.name === name);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.ToolManager = ToolManager;
|
|
106
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { JSONSchema7Definition } from 'json-schema';
|
|
3
|
+
/**
|
|
4
|
+
* Converts a JSONSchema7 definition to a Zod schema.
|
|
5
|
+
* Supports the common schema structures used by MCP tools.
|
|
6
|
+
*/
|
|
7
|
+
export declare function convertJsonSchemaToZod(schema: JSONSchema7Definition): z.ZodTypeAny;
|
|
8
|
+
//# sourceMappingURL=json-schema-to-zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema-to-zod.d.ts","sourceRoot":"","sources":["../../src/tools/json-schema-to-zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAe,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,qBAAqB,GAC5B,CAAC,CAAC,UAAU,CAMd"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertJsonSchemaToZod = convertJsonSchemaToZod;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Converts a JSONSchema7 definition to a Zod schema.
|
|
7
|
+
* Supports the common schema structures used by MCP tools.
|
|
8
|
+
*/
|
|
9
|
+
function convertJsonSchemaToZod(schema) {
|
|
10
|
+
if (typeof schema === 'boolean') {
|
|
11
|
+
return schema ? zod_1.z.any() : zod_1.z.never();
|
|
12
|
+
}
|
|
13
|
+
return parseJsonSchema(schema);
|
|
14
|
+
}
|
|
15
|
+
function parseJsonSchema(schema) {
|
|
16
|
+
// Handle nullable wrapper (e.g. { anyOf: [{ type: 'string' }, { type: 'null' }] })
|
|
17
|
+
if (isNullable(schema)) {
|
|
18
|
+
const nonNullSchema = getNonNullSubSchema(schema);
|
|
19
|
+
if (nonNullSchema) {
|
|
20
|
+
return parseJsonSchema(nonNullSchema).nullable();
|
|
21
|
+
}
|
|
22
|
+
return zod_1.z.any().nullable();
|
|
23
|
+
}
|
|
24
|
+
// anyOf / oneOf → z.union
|
|
25
|
+
if (schema.anyOf) {
|
|
26
|
+
return parseUnion(schema.anyOf);
|
|
27
|
+
}
|
|
28
|
+
if (schema.oneOf) {
|
|
29
|
+
return parseUnion(schema.oneOf);
|
|
30
|
+
}
|
|
31
|
+
// allOf → z.intersection
|
|
32
|
+
if (schema.allOf) {
|
|
33
|
+
return parseAllOf(schema.allOf);
|
|
34
|
+
}
|
|
35
|
+
// enum
|
|
36
|
+
if (schema.enum !== undefined) {
|
|
37
|
+
return parseEnum(schema.enum);
|
|
38
|
+
}
|
|
39
|
+
// const
|
|
40
|
+
if (schema.const !== undefined) {
|
|
41
|
+
return zod_1.z.literal(schema.const);
|
|
42
|
+
}
|
|
43
|
+
// multiple types
|
|
44
|
+
if (Array.isArray(schema.type)) {
|
|
45
|
+
const schemas = schema.type.map((t) => parsePrimitive({ ...schema, type: t }));
|
|
46
|
+
return schemas.length === 1
|
|
47
|
+
? schemas[0]
|
|
48
|
+
: zod_1.z.union(schemas);
|
|
49
|
+
}
|
|
50
|
+
switch (schema.type) {
|
|
51
|
+
case 'object':
|
|
52
|
+
return parseObject(schema);
|
|
53
|
+
case 'array':
|
|
54
|
+
return parseArray(schema);
|
|
55
|
+
case 'string':
|
|
56
|
+
return parseString(schema);
|
|
57
|
+
case 'number':
|
|
58
|
+
case 'integer':
|
|
59
|
+
return parseNumber(schema);
|
|
60
|
+
case 'boolean':
|
|
61
|
+
return zod_1.z.boolean();
|
|
62
|
+
case 'null':
|
|
63
|
+
return zod_1.z.null();
|
|
64
|
+
default:
|
|
65
|
+
// No type, but has properties → treat as object
|
|
66
|
+
if (schema.properties) {
|
|
67
|
+
return parseObject({ ...schema, type: 'object' });
|
|
68
|
+
}
|
|
69
|
+
return zod_1.z.any();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function parsePrimitive(schema) {
|
|
73
|
+
switch (schema.type) {
|
|
74
|
+
case 'string':
|
|
75
|
+
return parseString(schema);
|
|
76
|
+
case 'number':
|
|
77
|
+
case 'integer':
|
|
78
|
+
return parseNumber(schema);
|
|
79
|
+
case 'boolean':
|
|
80
|
+
return zod_1.z.boolean();
|
|
81
|
+
case 'null':
|
|
82
|
+
return zod_1.z.null();
|
|
83
|
+
case 'object':
|
|
84
|
+
return parseObject(schema);
|
|
85
|
+
case 'array':
|
|
86
|
+
return parseArray(schema);
|
|
87
|
+
default:
|
|
88
|
+
return zod_1.z.any();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function parseObject(schema) {
|
|
92
|
+
const properties = schema.properties;
|
|
93
|
+
if (!properties || Object.keys(properties).length === 0) {
|
|
94
|
+
const additionalProperties = schema.additionalProperties;
|
|
95
|
+
if (additionalProperties === false) {
|
|
96
|
+
return zod_1.z.object({});
|
|
97
|
+
}
|
|
98
|
+
if (additionalProperties && typeof additionalProperties === 'object') {
|
|
99
|
+
return zod_1.z.record(parseJsonSchema(additionalProperties));
|
|
100
|
+
}
|
|
101
|
+
return zod_1.z.record(zod_1.z.any());
|
|
102
|
+
}
|
|
103
|
+
const required = new Set(Array.isArray(schema.required) ? schema.required : []);
|
|
104
|
+
const shape = {};
|
|
105
|
+
for (const [key, propSchema] of Object.entries(properties)) {
|
|
106
|
+
const zodProp = convertJsonSchemaToZod(propSchema);
|
|
107
|
+
const hasDefault = typeof propSchema === 'object' && propSchema.default !== undefined;
|
|
108
|
+
shape[key] = required.has(key) || hasDefault ? zodProp : zodProp.optional();
|
|
109
|
+
}
|
|
110
|
+
return zod_1.z.object(shape);
|
|
111
|
+
}
|
|
112
|
+
function parseArray(schema) {
|
|
113
|
+
if (!schema.items) {
|
|
114
|
+
return zod_1.z.array(zod_1.z.any());
|
|
115
|
+
}
|
|
116
|
+
if (Array.isArray(schema.items)) {
|
|
117
|
+
// Tuple type
|
|
118
|
+
const itemSchemas = schema.items.map((item) => convertJsonSchemaToZod(item));
|
|
119
|
+
return zod_1.z.tuple(itemSchemas);
|
|
120
|
+
}
|
|
121
|
+
return zod_1.z.array(convertJsonSchemaToZod(schema.items));
|
|
122
|
+
}
|
|
123
|
+
function parseString(schema) {
|
|
124
|
+
let zodSchema = zod_1.z.string();
|
|
125
|
+
if (schema.minLength !== undefined) {
|
|
126
|
+
zodSchema = zodSchema.min(schema.minLength);
|
|
127
|
+
}
|
|
128
|
+
if (schema.maxLength !== undefined) {
|
|
129
|
+
zodSchema = zodSchema.max(schema.maxLength);
|
|
130
|
+
}
|
|
131
|
+
if (schema.pattern !== undefined) {
|
|
132
|
+
zodSchema = zodSchema.regex(new RegExp(schema.pattern));
|
|
133
|
+
}
|
|
134
|
+
return zodSchema;
|
|
135
|
+
}
|
|
136
|
+
function parseNumber(schema) {
|
|
137
|
+
let zodSchema = schema.type === 'integer' ? zod_1.z.number().int() : zod_1.z.number();
|
|
138
|
+
if (schema.minimum !== undefined) {
|
|
139
|
+
zodSchema = zodSchema.min(schema.minimum);
|
|
140
|
+
}
|
|
141
|
+
if (schema.maximum !== undefined) {
|
|
142
|
+
zodSchema = zodSchema.max(schema.maximum);
|
|
143
|
+
}
|
|
144
|
+
if (schema.multipleOf !== undefined) {
|
|
145
|
+
zodSchema = zodSchema.multipleOf(schema.multipleOf);
|
|
146
|
+
}
|
|
147
|
+
return zodSchema;
|
|
148
|
+
}
|
|
149
|
+
function parseUnion(schemas) {
|
|
150
|
+
const zodSchemas = schemas.map((s) => convertJsonSchemaToZod(s));
|
|
151
|
+
if (zodSchemas.length === 0)
|
|
152
|
+
return zod_1.z.never();
|
|
153
|
+
if (zodSchemas.length === 1)
|
|
154
|
+
return zodSchemas[0];
|
|
155
|
+
return zod_1.z.union(zodSchemas);
|
|
156
|
+
}
|
|
157
|
+
function parseAllOf(schemas) {
|
|
158
|
+
const zodSchemas = schemas.map((s) => convertJsonSchemaToZod(s));
|
|
159
|
+
if (zodSchemas.length === 0)
|
|
160
|
+
return zod_1.z.any();
|
|
161
|
+
if (zodSchemas.length === 1)
|
|
162
|
+
return zodSchemas[0];
|
|
163
|
+
return zodSchemas.reduce((acc, cur) => zod_1.z.intersection(acc, cur));
|
|
164
|
+
}
|
|
165
|
+
function parseEnum(values) {
|
|
166
|
+
if (!values || values.length === 0)
|
|
167
|
+
return zod_1.z.never();
|
|
168
|
+
if (values.length === 1)
|
|
169
|
+
return zod_1.z.literal(values[0]);
|
|
170
|
+
const literals = values.map((v) => zod_1.z.literal(v));
|
|
171
|
+
return zod_1.z.union(literals);
|
|
172
|
+
}
|
|
173
|
+
function isNullable(schema) {
|
|
174
|
+
// Handle { nullable: true } (OpenAPI extension)
|
|
175
|
+
if (schema.nullable === true)
|
|
176
|
+
return true;
|
|
177
|
+
// Handle { anyOf: [..., { type: 'null' }] }
|
|
178
|
+
if (schema.anyOf) {
|
|
179
|
+
return (schema.anyOf.some((s) => typeof s === 'object' && s.type === 'null') &&
|
|
180
|
+
schema.anyOf.length === 2);
|
|
181
|
+
}
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
function getNonNullSubSchema(schema) {
|
|
185
|
+
if (schema.anyOf) {
|
|
186
|
+
const nonNull = schema.anyOf.find((s) => typeof s === 'object' && s.type !== 'null');
|
|
187
|
+
return typeof nonNull === 'object' ? nonNull : undefined;
|
|
188
|
+
}
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=json-schema-to-zod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema-to-zod.js","sourceRoot":"","sources":["../../src/tools/json-schema-to-zod.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DynamicStructuredTool } from '@langchain/core/tools';
|
|
2
|
+
import type { MCPServerConfig } from '../types/index';
|
|
3
|
+
/**
|
|
4
|
+
* Connect to an MCP server and return its tools as LangChain DynamicStructuredTool instances.
|
|
5
|
+
* Supports both SSE and HTTP Streamable transports.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getMcpServerTools(config: MCPServerConfig): Promise<DynamicStructuredTool[]>;
|
|
8
|
+
//# sourceMappingURL=mcp-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAoFtD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA0CjG"}
|