@eggjs/tegg-langchain 0.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 +20 -0
- package/app.d.ts +8 -0
- package/app.js +55 -0
- package/index.d.ts +10 -0
- package/index.js +27 -0
- package/lib/ChatModelHelper.d.ts +8 -0
- package/lib/ChatModelHelper.js +16 -0
- package/lib/ChatOpenAI.d.ts +7 -0
- package/lib/ChatOpenAI.js +63 -0
- package/lib/boundModel/BoundModelObjectHook.d.ts +5 -0
- package/lib/boundModel/BoundModelObjectHook.js +112 -0
- package/lib/config/QualifierUtil.d.ts +8 -0
- package/lib/config/QualifierUtil.js +17 -0
- package/lib/graph/CompiledStateGraphObject.d.ts +25 -0
- package/lib/graph/CompiledStateGraphObject.js +113 -0
- package/lib/graph/CompiledStateGraphProto.d.ts +21 -0
- package/lib/graph/CompiledStateGraphProto.js +42 -0
- package/lib/graph/GraphBuildHook.d.ts +2 -0
- package/lib/graph/GraphBuildHook.js +24 -0
- package/lib/graph/GraphLoadUnitHook.d.ts +12 -0
- package/lib/graph/GraphLoadUnitHook.js +48 -0
- package/lib/graph/GraphObjectHook.d.ts +5 -0
- package/lib/graph/GraphObjectHook.js +142 -0
- package/lib/graph/GraphPrototypeHook.d.ts +20 -0
- package/lib/graph/GraphPrototypeHook.js +253 -0
- package/lib/tracing/LangGraphTracer.d.ts +8 -0
- package/lib/tracing/LangGraphTracer.js +40 -0
- package/lib/util.d.ts +4 -0
- package/lib/util.js +27 -0
- package/package.json +106 -0
- package/typings/index.d.ts +132 -0
package/README.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# @eggjs/tegg-langchain
|
|
2
|
+
|
|
3
|
+
使用注解的方式来开发 egg 中的 orm
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```shell
|
|
8
|
+
npm i --save @eggjs/tegg-orm-plugin
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Config
|
|
13
|
+
|
|
14
|
+
```js
|
|
15
|
+
// config/plugin.js
|
|
16
|
+
exports.teggOrm = {
|
|
17
|
+
package: '@eggjs/tegg-orm-plugin',
|
|
18
|
+
enable: true,
|
|
19
|
+
};
|
|
20
|
+
```
|
package/app.d.ts
ADDED
package/app.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _ModuleLangChainHook_app, _ModuleLangChainHook_graphObjectHook, _ModuleLangChainHook_graphLoadUnitHook, _ModuleLangChainHook_boundModelObjectHook, _ModuleLangChainHook_graphPrototypeHook;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
16
|
+
const GraphObjectHook_1 = require("./lib/graph/GraphObjectHook");
|
|
17
|
+
const GraphLoadUnitHook_1 = require("./lib/graph/GraphLoadUnitHook");
|
|
18
|
+
const CompiledStateGraphProto_1 = require("./lib/graph/CompiledStateGraphProto");
|
|
19
|
+
const CompiledStateGraphObject_1 = require("./lib/graph/CompiledStateGraphObject");
|
|
20
|
+
const BoundModelObjectHook_1 = require("./lib/boundModel/BoundModelObjectHook");
|
|
21
|
+
const GraphPrototypeHook_1 = require("./lib/graph/GraphPrototypeHook");
|
|
22
|
+
const GraphBuildHook_1 = require("./lib/graph/GraphBuildHook");
|
|
23
|
+
class ModuleLangChainHook {
|
|
24
|
+
constructor(app) {
|
|
25
|
+
_ModuleLangChainHook_app.set(this, void 0);
|
|
26
|
+
_ModuleLangChainHook_graphObjectHook.set(this, void 0);
|
|
27
|
+
_ModuleLangChainHook_graphLoadUnitHook.set(this, void 0);
|
|
28
|
+
_ModuleLangChainHook_boundModelObjectHook.set(this, void 0);
|
|
29
|
+
_ModuleLangChainHook_graphPrototypeHook.set(this, void 0);
|
|
30
|
+
__classPrivateFieldSet(this, _ModuleLangChainHook_app, app, "f");
|
|
31
|
+
__classPrivateFieldSet(this, _ModuleLangChainHook_graphObjectHook, new GraphObjectHook_1.GraphObjectHook(), "f");
|
|
32
|
+
__classPrivateFieldSet(this, _ModuleLangChainHook_graphLoadUnitHook, new GraphLoadUnitHook_1.GraphLoadUnitHook(__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").eggPrototypeFactory), "f");
|
|
33
|
+
__classPrivateFieldSet(this, _ModuleLangChainHook_boundModelObjectHook, new BoundModelObjectHook_1.BoundModelObjectHook(), "f");
|
|
34
|
+
__classPrivateFieldSet(this, _ModuleLangChainHook_graphPrototypeHook, new GraphPrototypeHook_1.GraphPrototypeHook(), "f");
|
|
35
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").loadUnitLifecycleUtil.registerLifecycle(__classPrivateFieldGet(this, _ModuleLangChainHook_graphLoadUnitHook, "f"));
|
|
36
|
+
}
|
|
37
|
+
configWillLoad() {
|
|
38
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").eggObjectLifecycleUtil.registerLifecycle(__classPrivateFieldGet(this, _ModuleLangChainHook_graphObjectHook, "f"));
|
|
39
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").eggObjectLifecycleUtil.registerLifecycle(__classPrivateFieldGet(this, _ModuleLangChainHook_boundModelObjectHook, "f"));
|
|
40
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").eggObjectFactory.registerEggObjectCreateMethod(CompiledStateGraphProto_1.CompiledStateGraphProto, CompiledStateGraphObject_1.CompiledStateGraphObject.createObject);
|
|
41
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").eggPrototypeLifecycleUtil.registerLifecycle(__classPrivateFieldGet(this, _ModuleLangChainHook_graphPrototypeHook, "f"));
|
|
42
|
+
}
|
|
43
|
+
configDidLoad() {
|
|
44
|
+
tegg_metadata_1.GlobalGraph.instance.registerBuildHook(GraphBuildHook_1.GraphBuildHook);
|
|
45
|
+
}
|
|
46
|
+
async beforeClose() {
|
|
47
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").eggObjectLifecycleUtil.deleteLifecycle(__classPrivateFieldGet(this, _ModuleLangChainHook_graphObjectHook, "f"));
|
|
48
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").eggObjectLifecycleUtil.deleteLifecycle(__classPrivateFieldGet(this, _ModuleLangChainHook_boundModelObjectHook, "f"));
|
|
49
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").loadUnitLifecycleUtil.deleteLifecycle(__classPrivateFieldGet(this, _ModuleLangChainHook_graphLoadUnitHook, "f"));
|
|
50
|
+
__classPrivateFieldGet(this, _ModuleLangChainHook_app, "f").eggPrototypeLifecycleUtil.deleteLifecycle(__classPrivateFieldGet(this, _ModuleLangChainHook_graphPrototypeHook, "f"));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
_ModuleLangChainHook_app = new WeakMap(), _ModuleLangChainHook_graphObjectHook = new WeakMap(), _ModuleLangChainHook_graphLoadUnitHook = new WeakMap(), _ModuleLangChainHook_boundModelObjectHook = new WeakMap(), _ModuleLangChainHook_graphPrototypeHook = new WeakMap();
|
|
54
|
+
exports.default = ModuleLangChainHook;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQ0Esd0RBQW1EO0FBQ25ELGlFQUE4RDtBQUM5RCxxRUFBa0U7QUFDbEUsaUZBQThFO0FBQzlFLG1GQUFnRjtBQUNoRixnRkFBNkU7QUFDN0UsdUVBQW9FO0FBQ3BFLCtEQUE0RDtBQUU1RCxNQUFxQixtQkFBbUI7SUFPdEMsWUFBWSxHQUFnQjtRQU5uQiwyQ0FBa0I7UUFDbEIsdURBQWtDO1FBQ2xDLHlEQUFzQztRQUN0Qyw0REFBNEM7UUFDNUMsMERBQXdDO1FBRy9DLHVCQUFBLElBQUksNEJBQVEsR0FBRyxNQUFBLENBQUM7UUFDaEIsdUJBQUEsSUFBSSx3Q0FBb0IsSUFBSSxpQ0FBZSxFQUFFLE1BQUEsQ0FBQztRQUM5Qyx1QkFBQSxJQUFJLDBDQUFzQixJQUFJLHFDQUFpQixDQUFDLHVCQUFBLElBQUksZ0NBQUssQ0FBQyxtQkFBbUIsQ0FBQyxNQUFBLENBQUM7UUFDL0UsdUJBQUEsSUFBSSw2Q0FBeUIsSUFBSSwyQ0FBb0IsRUFBRSxNQUFBLENBQUM7UUFDeEQsdUJBQUEsSUFBSSwyQ0FBdUIsSUFBSSx1Q0FBa0IsRUFBRSxNQUFBLENBQUM7UUFDcEQsdUJBQUEsSUFBSSxnQ0FBSyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLHVCQUFBLElBQUksOENBQW1CLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsY0FBYztRQUNaLHVCQUFBLElBQUksZ0NBQUssQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBQSxJQUFJLDRDQUFpQixDQUFDLENBQUM7UUFDMUUsdUJBQUEsSUFBSSxnQ0FBSyxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLHVCQUFBLElBQUksaURBQXNCLENBQUMsQ0FBQztRQUMvRSx1QkFBQSxJQUFJLGdDQUFLLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsaURBQXVCLEVBQUUsbURBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekgsdUJBQUEsSUFBSSxnQ0FBSyxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLHVCQUFBLElBQUksK0NBQW9CLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsYUFBYTtRQUNYLDJCQUFXLENBQUMsUUFBUyxDQUFDLGlCQUFpQixDQUFDLCtCQUFjLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZix1QkFBQSxJQUFJLGdDQUFLLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLHVCQUFBLElBQUksNENBQWlCLENBQUMsQ0FBQztRQUN4RSx1QkFBQSxJQUFJLGdDQUFLLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLHVCQUFBLElBQUksaURBQXNCLENBQUMsQ0FBQztRQUM3RSx1QkFBQSxJQUFJLGdDQUFLLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLHVCQUFBLElBQUksOENBQW1CLENBQUMsQ0FBQztRQUN6RSx1QkFBQSxJQUFJLGdDQUFLLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLHVCQUFBLElBQUksK0NBQW9CLENBQUMsQ0FBQztJQUNoRixDQUFDO0NBQ0Y7O2tCQWpDb0IsbUJBQW1CIn0=
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './lib/ChatOpenAI';
|
|
2
|
+
export * from './lib/boundModel/BoundModelObjectHook';
|
|
3
|
+
export * from './lib/config/QualifierUtil';
|
|
4
|
+
export * from './lib/graph/CompiledStateGraphObject';
|
|
5
|
+
export * from './lib/graph/CompiledStateGraphProto';
|
|
6
|
+
export * from './lib/graph/GraphBuildHook';
|
|
7
|
+
export * from './lib/graph/GraphLoadUnitHook';
|
|
8
|
+
export * from './lib/graph/GraphObjectHook';
|
|
9
|
+
export * from './lib/graph/GraphPrototypeHook';
|
|
10
|
+
export * from './lib/tracing/LangGraphTracer';
|
package/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib/ChatOpenAI"), exports);
|
|
18
|
+
__exportStar(require("./lib/boundModel/BoundModelObjectHook"), exports);
|
|
19
|
+
__exportStar(require("./lib/config/QualifierUtil"), exports);
|
|
20
|
+
__exportStar(require("./lib/graph/CompiledStateGraphObject"), exports);
|
|
21
|
+
__exportStar(require("./lib/graph/CompiledStateGraphProto"), exports);
|
|
22
|
+
__exportStar(require("./lib/graph/GraphBuildHook"), exports);
|
|
23
|
+
__exportStar(require("./lib/graph/GraphLoadUnitHook"), exports);
|
|
24
|
+
__exportStar(require("./lib/graph/GraphObjectHook"), exports);
|
|
25
|
+
__exportStar(require("./lib/graph/GraphPrototypeHook"), exports);
|
|
26
|
+
__exportStar(require("./lib/tracing/LangGraphTracer"), exports);
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLHdFQUFzRDtBQUN0RCw2REFBMkM7QUFDM0MsdUVBQXFEO0FBQ3JELHNFQUFvRDtBQUNwRCw2REFBMkM7QUFDM0MsZ0VBQThDO0FBQzlDLDhEQUE0QztBQUM1QyxpRUFBK0M7QUFDL0MsZ0VBQThDIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatModelHelper = void 0;
|
|
4
|
+
const tegg_langchain_decorator_1 = require("@eggjs/tegg-langchain-decorator");
|
|
5
|
+
class ChatModelHelper {
|
|
6
|
+
static getChatModelQualifier(clientName) {
|
|
7
|
+
return {
|
|
8
|
+
[tegg_langchain_decorator_1.ChatModelInjectName]: [{
|
|
9
|
+
attribute: tegg_langchain_decorator_1.ChatModelQualifierAttribute,
|
|
10
|
+
value: clientName,
|
|
11
|
+
}],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.ChatModelHelper = ChatModelHelper;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhdE1vZGVsSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ2hhdE1vZGVsSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhFQUd5QztBQUV6QyxNQUFhLGVBQWU7SUFDMUIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQWtCO1FBQzdDLE9BQU87WUFDTCxDQUFDLDhDQUFtQixDQUFDLEVBQUUsQ0FBQztvQkFDdEIsU0FBUyxFQUFFLHNEQUEyQjtvQkFDdEMsS0FBSyxFQUFFLFVBQVU7aUJBQ2xCLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBVEQsMENBU0MifQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ObjectInfo } from '@eggjs/tegg';
|
|
2
|
+
import { ModuleConfig } from '@eggjs/tegg-common-util';
|
|
3
|
+
import { ChatOpenAI } from '@langchain/openai';
|
|
4
|
+
export declare class ChatOpenAIModel extends ChatOpenAI {
|
|
5
|
+
readonly moduleConfig: ModuleConfig;
|
|
6
|
+
constructor(moduleConfig: ModuleConfig, objInfo: ObjectInfo);
|
|
7
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ChatOpenAIModel = void 0;
|
|
16
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
17
|
+
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
18
|
+
const openai_1 = require("@langchain/openai");
|
|
19
|
+
const util_1 = require("./util");
|
|
20
|
+
const QualifierUtil_1 = require("./config/QualifierUtil");
|
|
21
|
+
const urllib_1 = require("urllib");
|
|
22
|
+
const tegg_langchain_decorator_1 = require("@eggjs/tegg-langchain-decorator");
|
|
23
|
+
const ChatModelHelper_1 = require("./ChatModelHelper");
|
|
24
|
+
let ChatOpenAIModel = class ChatOpenAIModel extends openai_1.ChatOpenAI {
|
|
25
|
+
constructor(moduleConfig, objInfo) {
|
|
26
|
+
const chatConfig = (0, util_1.getChatModelConfig)(moduleConfig, objInfo);
|
|
27
|
+
chatConfig.configuration = chatConfig.configuration || {};
|
|
28
|
+
// 如果依赖中存在低版本 urllib 会引发问题,因此需要手动设置好
|
|
29
|
+
urllib_1.FetchFactory.setDispatcher(new urllib_1.Agent({ allowH2: true }));
|
|
30
|
+
chatConfig.configuration.fetch = urllib_1.fetch;
|
|
31
|
+
super(chatConfig);
|
|
32
|
+
this.moduleConfig = moduleConfig;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.ChatOpenAIModel = ChatOpenAIModel;
|
|
36
|
+
exports.ChatOpenAIModel = ChatOpenAIModel = __decorate([
|
|
37
|
+
(0, tegg_1.MultiInstanceProto)({
|
|
38
|
+
accessLevel: tegg_1.AccessLevel.PUBLIC,
|
|
39
|
+
initType: tegg_1.ObjectInitType.SINGLETON,
|
|
40
|
+
// 从 module.yml 中动态获取配置来决定需要初始化几个对象
|
|
41
|
+
getObjects(ctx) {
|
|
42
|
+
const config = tegg_common_util_1.ModuleConfigUtil.loadModuleConfigSync(ctx.unitPath);
|
|
43
|
+
const moduleName = tegg_common_util_1.ModuleConfigUtil.readModuleNameSync(ctx.unitPath);
|
|
44
|
+
return (0, util_1.getClientNames)(config, 'ChatModel')
|
|
45
|
+
.filter(name => {
|
|
46
|
+
return config.ChatModel.clients[name].type === 'openai';
|
|
47
|
+
})
|
|
48
|
+
.map(name => {
|
|
49
|
+
return {
|
|
50
|
+
name: tegg_langchain_decorator_1.ChatModelInjectName,
|
|
51
|
+
qualifiers: ChatModelHelper_1.ChatModelHelper.getChatModelQualifier(name)[tegg_langchain_decorator_1.ChatModelInjectName],
|
|
52
|
+
properQualifiers: {
|
|
53
|
+
...QualifierUtil_1.QualifierUtil.getModuleConfigQualifier(moduleName),
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
}),
|
|
59
|
+
__param(0, (0, tegg_1.Inject)()),
|
|
60
|
+
__param(1, (0, tegg_1.MultiInstanceInfo)([tegg_langchain_decorator_1.ChatModelQualifierAttribute])),
|
|
61
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
62
|
+
], ChatOpenAIModel);
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhdE9wZW5BSS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNoYXRPcGVuQUkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0NBUXFCO0FBQ3JCLDhEQUF5RTtBQUN6RSw4Q0FBK0M7QUFDL0MsaUNBQTREO0FBQzVELDBEQUF1RDtBQUN2RCxtQ0FBb0Q7QUFDcEQsOEVBQW1HO0FBQ25HLHVEQUFvRDtBQXdCN0MsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZ0IsU0FBUSxtQkFBVTtJQUM3QyxZQUNxQixZQUEwQixFQUNPLE9BQW1CO1FBRXZFLE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWtCLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdELFVBQVUsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDMUQsb0NBQW9DO1FBQ3BDLHFCQUFZLENBQUMsYUFBYSxDQUFDLElBQUksY0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RCxVQUFVLENBQUMsYUFBcUIsQ0FBQyxLQUFLLEdBQUcsY0FBWSxDQUFDO1FBQ3ZELEtBQUssQ0FBQyxVQUFpQixDQUFDLENBQUM7UUFSTixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQVMvQyxDQUFDO0NBQ0YsQ0FBQTtBQVpZLDBDQUFlOzBCQUFmLGVBQWU7SUF0QjNCLElBQUEseUJBQWtCLEVBQUM7UUFDbEIsV0FBVyxFQUFFLGtCQUFXLENBQUMsTUFBTTtRQUMvQixRQUFRLEVBQUUscUJBQWMsQ0FBQyxTQUFTO1FBQ2xDLG1DQUFtQztRQUNuQyxVQUFVLENBQUMsR0FBNEM7WUFDckQsTUFBTSxNQUFNLEdBQWlCLG1DQUFnQixDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRixNQUFNLFVBQVUsR0FBRyxtQ0FBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckUsT0FBTyxJQUFBLHFCQUFjLEVBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztpQkFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNiLE9BQVEsTUFBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztZQUNuRSxDQUFDLENBQUM7aUJBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNWLE9BQU87b0JBQ0wsSUFBSSxFQUFFLDhDQUFtQjtvQkFDekIsVUFBVSxFQUFFLGlDQUFlLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsOENBQW1CLENBQUM7b0JBQzVFLGdCQUFnQixFQUFFO3dCQUNoQixHQUFHLDZCQUFhLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDO3FCQUN0RDtpQkFDRixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0tBQ0YsQ0FBQztJQUdHLFdBQUEsSUFBQSxhQUFNLEdBQUUsQ0FBQTtJQUNSLFdBQUEsSUFBQSx3QkFBaUIsRUFBQyxDQUFFLHNEQUEyQixDQUFFLENBQUMsQ0FBQTs7R0FIMUMsZUFBZSxDQVkzQiJ9
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type LifecycleHook } from '@eggjs/tegg';
|
|
2
|
+
import { EggObject, EggObjectLifeCycleContext } from '@eggjs/tegg-runtime';
|
|
3
|
+
export declare class BoundModelObjectHook implements LifecycleHook<EggObjectLifeCycleContext, EggObject> {
|
|
4
|
+
postCreate(_: EggObjectLifeCycleContext, eggObject: EggObject): Promise<void>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
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.BoundModelObjectHook = void 0;
|
|
37
|
+
const z = __importStar(require("zod/v4"));
|
|
38
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
39
|
+
const tegg_langchain_decorator_1 = require("@eggjs/tegg-langchain-decorator");
|
|
40
|
+
const mcp_client_1 = require("@eggjs/mcp-client");
|
|
41
|
+
const mcp_adapters_1 = require("@langchain/mcp-adapters");
|
|
42
|
+
const tegg_runtime_1 = require("@eggjs/tegg-runtime");
|
|
43
|
+
const langchain_1 = require("langchain");
|
|
44
|
+
class BoundModelHandler {
|
|
45
|
+
constructor(nodeMetadata, eggObject) {
|
|
46
|
+
this.boundModelMetadata = nodeMetadata;
|
|
47
|
+
this.eggObject = eggObject;
|
|
48
|
+
}
|
|
49
|
+
async findGraphTools() {
|
|
50
|
+
var _a;
|
|
51
|
+
const tools = (_a = this.boundModelMetadata.tools) !== null && _a !== void 0 ? _a : [];
|
|
52
|
+
let dTools = [];
|
|
53
|
+
for (let i = 0; i < tools.length; i++) {
|
|
54
|
+
const toolsObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromClazz(tools[i]);
|
|
55
|
+
const toolMetadata = tegg_langchain_decorator_1.GraphToolInfoUtil.getGraphToolMetadata(toolsObj.proto.clazz);
|
|
56
|
+
const ToolDetail = tegg_1.MCPInfoUtil.getMCPToolArgsIndex(toolsObj.proto.clazz, 'execute');
|
|
57
|
+
if (toolMetadata && ToolDetail) {
|
|
58
|
+
const tool = new langchain_1.DynamicStructuredTool({
|
|
59
|
+
description: toolMetadata.description,
|
|
60
|
+
name: toolMetadata.toolName,
|
|
61
|
+
func: toolsObj.obj.execute.bind(toolsObj.obj),
|
|
62
|
+
schema: z.object(ToolDetail.argsSchema),
|
|
63
|
+
});
|
|
64
|
+
dTools = dTools.concat(tool);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return dTools;
|
|
68
|
+
}
|
|
69
|
+
async findMcpServerTools() {
|
|
70
|
+
var _a;
|
|
71
|
+
const mcpServers = (_a = this.boundModelMetadata.mcpServers) !== null && _a !== void 0 ? _a : [];
|
|
72
|
+
let sTools = [];
|
|
73
|
+
for (let i = 0; i < mcpServers.length; i++) {
|
|
74
|
+
const mcpClientObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromName(mcp_client_1.MCPClientInjectName, [{
|
|
75
|
+
attribute: mcp_client_1.MCPClientQualifierAttribute,
|
|
76
|
+
value: mcpServers[i],
|
|
77
|
+
}]);
|
|
78
|
+
const tool = await (0, mcp_adapters_1.loadMcpTools)(mcpServers[i], mcpClientObj.obj, {
|
|
79
|
+
throwOnLoadError: true,
|
|
80
|
+
prefixToolNameWithServerName: false,
|
|
81
|
+
additionalToolNamePrefix: '',
|
|
82
|
+
});
|
|
83
|
+
sTools = sTools.concat(tool);
|
|
84
|
+
}
|
|
85
|
+
return sTools;
|
|
86
|
+
}
|
|
87
|
+
async boundTools() {
|
|
88
|
+
const nodeObj = this.eggObject.obj;
|
|
89
|
+
const dTools = await this.findGraphTools();
|
|
90
|
+
const sTools = await this.findMcpServerTools();
|
|
91
|
+
const chatModelObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromName(tegg_langchain_decorator_1.ChatModelInjectName, [{
|
|
92
|
+
attribute: tegg_langchain_decorator_1.ChatModelQualifierAttribute,
|
|
93
|
+
value: this.boundModelMetadata.modelName,
|
|
94
|
+
}]);
|
|
95
|
+
const chatModel = chatModelObj.obj;
|
|
96
|
+
const boundChatModel = chatModel.bindTools([...dTools, ...sTools]);
|
|
97
|
+
Object.setPrototypeOf(Object.getPrototypeOf(nodeObj), boundChatModel);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
class BoundModelObjectHook {
|
|
101
|
+
async postCreate(_, eggObject) {
|
|
102
|
+
const BoundModelMetadata = eggObject.proto.getMetaData(tegg_langchain_decorator_1.BOUND_MODEL_METADATA);
|
|
103
|
+
// 找到 graph node
|
|
104
|
+
if (BoundModelMetadata) {
|
|
105
|
+
const handler = new BoundModelHandler(BoundModelMetadata, eggObject);
|
|
106
|
+
await handler.boundTools();
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.BoundModelObjectHook = BoundModelObjectHook;
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm91bmRNb2RlbE9iamVjdEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJCb3VuZE1vZGVsT2JqZWN0SG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBNEI7QUFDNUIsc0NBQThEO0FBQzlELDhFQVF5QztBQUl6QyxrREFBcUY7QUFDckYsMERBQXVEO0FBQ3ZELHNEQUFnRztBQUVoRyx5Q0FBa0Q7QUFFbEQsTUFBTSxpQkFBaUI7SUFJckIsWUFBWSxZQUFpQyxFQUFFLFNBQW9CO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjOztRQUNsQixNQUFNLEtBQUssR0FBRyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLG1DQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLE1BQU0sR0FBb0QsRUFBRSxDQUFDO1FBQ2pFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxrQ0FBbUIsQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRixNQUFNLFlBQVksR0FBRyw0Q0FBaUIsQ0FBQyxvQkFBb0IsQ0FBRSxRQUFRLENBQUMsS0FBMEMsQ0FBQyxLQUFNLENBQUMsQ0FBQztZQUN6SCxNQUFNLFVBQVUsR0FBRyxrQkFBVyxDQUFDLG1CQUFtQixDQUFFLFFBQVEsQ0FBQyxLQUEwQyxDQUFDLEtBQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMzSCxJQUFJLFlBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxpQ0FBcUIsQ0FBQztvQkFDckMsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO29CQUNyQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFFBQVE7b0JBQzNCLElBQUksRUFBRyxRQUFRLENBQUMsR0FBa0MsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQzdFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQVE7aUJBQy9DLENBQUMsQ0FBQztnQkFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCOztRQUN0QixNQUFNLFVBQVUsR0FBRyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLG1DQUFJLEVBQUUsQ0FBQztRQUM1RCxJQUFJLE1BQU0sR0FBb0QsRUFBRSxDQUFDO1FBQ2pFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDM0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxrQ0FBbUIsQ0FBQyw0QkFBNEIsQ0FBQyxnQ0FBbUIsRUFBRSxDQUFDO29CQUNoRyxTQUFTLEVBQUUsd0NBQTJCO29CQUN0QyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDckIsQ0FBQyxDQUFDLENBQUM7WUFDSixNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsMkJBQVksRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQVUsRUFBRTtnQkFDdEUsZ0JBQWdCLEVBQUUsSUFBSTtnQkFDdEIsNEJBQTRCLEVBQUUsS0FBSztnQkFDbkMsd0JBQXdCLEVBQUUsRUFBRTthQUM3QixDQUFDLENBQUM7WUFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFzQixDQUFDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFL0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxrQ0FBbUIsQ0FBQyw0QkFBNEIsQ0FBQyw4Q0FBbUIsRUFBRSxDQUFDO2dCQUNoRyxTQUFTLEVBQUUsc0RBQTJCO2dCQUN0QyxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVM7YUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDSixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsR0FBd0IsQ0FBQztRQUV4RCxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUUsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0Y7QUFFRCxNQUFhLG9CQUFvQjtJQUUvQixLQUFLLENBQUMsVUFBVSxDQUFDLENBQTRCLEVBQUUsU0FBb0I7UUFDakUsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBc0IsK0NBQW9CLENBQUMsQ0FBQztRQUNsRyxnQkFBZ0I7UUFDaEIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDckUsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFYRCxvREFXQyJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QualifierUtil = void 0;
|
|
4
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
5
|
+
// TODO refactor to ModuleConfig and mist impl
|
|
6
|
+
class QualifierUtil {
|
|
7
|
+
static getModuleConfigQualifier(moduleName) {
|
|
8
|
+
return {
|
|
9
|
+
moduleConfig: [{
|
|
10
|
+
attribute: tegg_1.ConfigSourceQualifierAttribute,
|
|
11
|
+
value: moduleName,
|
|
12
|
+
}],
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.QualifierUtil = QualifierUtil;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVhbGlmaWVyVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlF1YWxpZmllclV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0NBQTZEO0FBRTdELDhDQUE4QztBQUM5QyxNQUFhLGFBQWE7SUFDeEIsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFVBQWtCO1FBQ2hELE9BQU87WUFDTCxZQUFZLEVBQUUsQ0FBQztvQkFDYixTQUFTLEVBQUUscUNBQThCO29CQUN6QyxLQUFLLEVBQUUsVUFBVTtpQkFDbEIsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFURCxzQ0FTQyJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { EggContext, EggObject } from '@eggjs/tegg-runtime';
|
|
2
|
+
import { EggObjectName, EggPrototypeName, Id } from '@eggjs/tegg';
|
|
3
|
+
import { CompiledStateGraphProto } from './CompiledStateGraphProto';
|
|
4
|
+
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
5
|
+
import { GraphMetadata } from '@eggjs/tegg-langchain-decorator';
|
|
6
|
+
export declare class CompiledStateGraphObject implements EggObject {
|
|
7
|
+
private status;
|
|
8
|
+
id: Id;
|
|
9
|
+
readonly name: EggPrototypeName;
|
|
10
|
+
readonly proto: CompiledStateGraphProto;
|
|
11
|
+
readonly ctx: EggContext;
|
|
12
|
+
readonly daoName: string;
|
|
13
|
+
private _obj;
|
|
14
|
+
readonly graphMetadata: GraphMetadata;
|
|
15
|
+
readonly graphName: string;
|
|
16
|
+
constructor(name: EggObjectName, proto: CompiledStateGraphProto);
|
|
17
|
+
init(): Promise<void>;
|
|
18
|
+
build(): Promise<any>;
|
|
19
|
+
boundNodes(stateGraph: EggObject): Promise<void>;
|
|
20
|
+
boundEdges(stateGraph: EggObject): Promise<void>;
|
|
21
|
+
injectProperty(): void;
|
|
22
|
+
get isReady(): boolean;
|
|
23
|
+
get obj(): object;
|
|
24
|
+
static createObject(name: EggObjectName, proto: EggPrototype): Promise<CompiledStateGraphObject>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CompiledStateGraphObject = void 0;
|
|
4
|
+
const tegg_runtime_1 = require("@eggjs/tegg-runtime");
|
|
5
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
6
|
+
const tegg_langchain_decorator_1 = require("@eggjs/tegg-langchain-decorator");
|
|
7
|
+
class CompiledStateGraphObject {
|
|
8
|
+
constructor(name, proto) {
|
|
9
|
+
var _a;
|
|
10
|
+
this.status = tegg_runtime_1.EggObjectStatus.PENDING;
|
|
11
|
+
this.name = name;
|
|
12
|
+
this.proto = proto;
|
|
13
|
+
this.ctx = tegg_runtime_1.ContextHandler.getContext();
|
|
14
|
+
this.id = tegg_1.IdenticalUtil.createObjectId(this.proto.id, (_a = this.ctx) === null || _a === void 0 ? void 0 : _a.id);
|
|
15
|
+
this.graphMetadata = proto.graphMetadata;
|
|
16
|
+
this.graphName = proto.graphName;
|
|
17
|
+
}
|
|
18
|
+
async init() {
|
|
19
|
+
this._obj = await this.build();
|
|
20
|
+
const graph = this._obj;
|
|
21
|
+
const originalInvoke = graph.invoke;
|
|
22
|
+
const langGraphTraceObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromName('langGraphTracer');
|
|
23
|
+
const tracer = langGraphTraceObj.obj;
|
|
24
|
+
tracer.setName(this.graphName);
|
|
25
|
+
graph.invoke = async (input, config) => {
|
|
26
|
+
var _a;
|
|
27
|
+
if ((_a = config === null || config === void 0 ? void 0 : config.tags) === null || _a === void 0 ? void 0 : _a.includes('trace-log')) {
|
|
28
|
+
config.callbacks = [tracer, ...((config === null || config === void 0 ? void 0 : config.callbacks) || [])];
|
|
29
|
+
}
|
|
30
|
+
return await originalInvoke.call(graph, input, config);
|
|
31
|
+
};
|
|
32
|
+
this.status = tegg_runtime_1.EggObjectStatus.READY;
|
|
33
|
+
}
|
|
34
|
+
async build() {
|
|
35
|
+
const stateGraph = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromName(this.graphName);
|
|
36
|
+
await this.boundNodes(stateGraph);
|
|
37
|
+
await this.boundEdges(stateGraph);
|
|
38
|
+
const graphObj = stateGraph.obj;
|
|
39
|
+
const checkpoint = this.graphMetadata.checkpoint;
|
|
40
|
+
let compileGraph;
|
|
41
|
+
if (checkpoint) {
|
|
42
|
+
let checkpointObj;
|
|
43
|
+
if (typeof checkpoint !== 'string') {
|
|
44
|
+
checkpointObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromClazz(checkpoint);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
checkpointObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromName(tegg_langchain_decorator_1.ChatCheckpointSaverInjectName, [{
|
|
48
|
+
attribute: tegg_langchain_decorator_1.ChatCheckpointSaverQualifierAttribute,
|
|
49
|
+
value: checkpoint,
|
|
50
|
+
}]);
|
|
51
|
+
}
|
|
52
|
+
compileGraph = graphObj.compile({
|
|
53
|
+
checkpointer: checkpointObj.obj,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
compileGraph = graphObj.compile();
|
|
58
|
+
}
|
|
59
|
+
return compileGraph;
|
|
60
|
+
}
|
|
61
|
+
async boundNodes(stateGraph) {
|
|
62
|
+
var _a;
|
|
63
|
+
const graphObj = stateGraph.obj;
|
|
64
|
+
const nodes = (_a = this.graphMetadata.nodes) !== null && _a !== void 0 ? _a : [];
|
|
65
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
66
|
+
const node = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromClazz(nodes[i]);
|
|
67
|
+
const nodeObj = node.obj;
|
|
68
|
+
const nodeMetadata = node.proto.getMetaData(tegg_langchain_decorator_1.GRAPH_NODE_METADATA);
|
|
69
|
+
if (nodeMetadata) {
|
|
70
|
+
if (tegg_langchain_decorator_1.TeggToolNode.prototype.isPrototypeOf(nodeObj)) {
|
|
71
|
+
graphObj.addNode(nodeMetadata.nodeName, nodeObj.toolNode);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
graphObj.addNode(nodeMetadata.nodeName, nodeObj.execute.bind(nodeObj));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async boundEdges(stateGraph) {
|
|
80
|
+
var _a;
|
|
81
|
+
const graphObj = stateGraph.obj;
|
|
82
|
+
const edges = (_a = this.graphMetadata.edges) !== null && _a !== void 0 ? _a : [];
|
|
83
|
+
for (let i = 0; i < edges.length; i++) {
|
|
84
|
+
const edge = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromClazz(edges[i]);
|
|
85
|
+
const edgeObj = edge.obj;
|
|
86
|
+
const edgeMetadata = edge.proto.getMetaData(tegg_langchain_decorator_1.GRAPH_EDGE_METADATA);
|
|
87
|
+
if (edgeMetadata) {
|
|
88
|
+
if (edgeObj.execute) {
|
|
89
|
+
graphObj.addConditionalEdges(edgeMetadata.fromNodeName, edgeObj.execute.bind(edgeObj), edgeMetadata.toNodeNames);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
graphObj.addEdge(edgeMetadata.fromNodeName, edgeMetadata.toNodeNames[0]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
injectProperty() {
|
|
98
|
+
throw new Error('never call GraphObject#injectProperty');
|
|
99
|
+
}
|
|
100
|
+
get isReady() {
|
|
101
|
+
return this.status === tegg_runtime_1.EggObjectStatus.READY;
|
|
102
|
+
}
|
|
103
|
+
get obj() {
|
|
104
|
+
return this._obj;
|
|
105
|
+
}
|
|
106
|
+
static async createObject(name, proto) {
|
|
107
|
+
const compiledStateGraphObject = new CompiledStateGraphObject(name, proto);
|
|
108
|
+
await compiledStateGraphObject.init();
|
|
109
|
+
return compiledStateGraphObject;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.CompiledStateGraphObject = CompiledStateGraphObject;
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcGlsZWRTdGF0ZUdyYXBoT2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29tcGlsZWRTdGF0ZUdyYXBoT2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQU02QjtBQUM3QixzQ0FBaUY7QUFHakYsOEVBQW9RO0FBSXBRLE1BQWEsd0JBQXdCO0lBV25DLFlBQVksSUFBbUIsRUFBRSxLQUE4Qjs7UUFWdkQsV0FBTSxHQUFvQiw4QkFBZSxDQUFDLE9BQU8sQ0FBQztRQVd4RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLDZCQUFjLENBQUMsVUFBVSxFQUFHLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxvQkFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBb0MsQ0FBQztRQUV4RCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3BDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxrQ0FBbUIsQ0FBQyw0QkFBNEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLEdBQXNCLENBQUM7UUFDeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJ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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EggPrototype, LoadUnit } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { InjectObjectProto } from '@eggjs/tegg-types';
|
|
3
|
+
import { AccessLevel, EggPrototypeName, ObjectInitType, QualifierInfo, Id, QualifierAttribute, QualifierValue } from '@eggjs/tegg';
|
|
4
|
+
import { GraphMetadata } from '@eggjs/tegg-langchain-decorator';
|
|
5
|
+
export declare class CompiledStateGraphProto implements EggPrototype {
|
|
6
|
+
private readonly qualifiers;
|
|
7
|
+
readonly accessLevel = AccessLevel.PUBLIC;
|
|
8
|
+
id: Id;
|
|
9
|
+
readonly initType = ObjectInitType.SINGLETON;
|
|
10
|
+
readonly injectObjects: InjectObjectProto[];
|
|
11
|
+
loadUnitId: string;
|
|
12
|
+
readonly name: EggPrototypeName;
|
|
13
|
+
readonly graphMetadata: GraphMetadata;
|
|
14
|
+
readonly graphName: string;
|
|
15
|
+
constructor(loadUnit: LoadUnit, protoName: string, graphName: string, graphMetadata: GraphMetadata);
|
|
16
|
+
constructEggObject(): object;
|
|
17
|
+
getMetaData<T>(): T | undefined;
|
|
18
|
+
verifyQualifier(qualifier: QualifierInfo): boolean;
|
|
19
|
+
verifyQualifiers(qualifiers: QualifierInfo[]): boolean;
|
|
20
|
+
getQualifier(attribute: QualifierAttribute): QualifierValue | undefined;
|
|
21
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CompiledStateGraphProto = void 0;
|
|
4
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
5
|
+
class CompiledStateGraphProto {
|
|
6
|
+
constructor(loadUnit, protoName, graphName, graphMetadata) {
|
|
7
|
+
this.accessLevel = tegg_1.AccessLevel.PUBLIC;
|
|
8
|
+
this.initType = tegg_1.ObjectInitType.SINGLETON;
|
|
9
|
+
this.injectObjects = [];
|
|
10
|
+
this.loadUnitId = loadUnit.id;
|
|
11
|
+
this.qualifiers = [];
|
|
12
|
+
this.name = protoName;
|
|
13
|
+
this.graphMetadata = graphMetadata;
|
|
14
|
+
this.graphName = graphName;
|
|
15
|
+
this.id = tegg_1.IdenticalUtil.createProtoId(loadUnit.id, protoName);
|
|
16
|
+
}
|
|
17
|
+
constructEggObject() {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
getMetaData() {
|
|
21
|
+
// TODO set default metadata
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
verifyQualifier(qualifier) {
|
|
25
|
+
const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
|
|
26
|
+
return (selfQualifiers === null || selfQualifiers === void 0 ? void 0 : selfQualifiers.value) === qualifier.value;
|
|
27
|
+
}
|
|
28
|
+
verifyQualifiers(qualifiers) {
|
|
29
|
+
for (const qualifier of qualifiers) {
|
|
30
|
+
if (!this.verifyQualifier(qualifier)) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
getQualifier(attribute) {
|
|
37
|
+
const qualifier = this.qualifiers.find(t => t.attribute === attribute);
|
|
38
|
+
return qualifier === null || qualifier === void 0 ? void 0 : qualifier.value;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.CompiledStateGraphProto = CompiledStateGraphProto;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcGlsZWRTdGF0ZUdyYXBoUHJvdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJDb21waWxlZFN0YXRlR3JhcGhQcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxzQ0FTcUI7QUFHckIsTUFBYSx1QkFBdUI7SUFXbEMsWUFBWSxRQUFrQixFQUFFLFNBQWlCLEVBQUUsU0FBaUIsRUFBRSxhQUE0QjtRQVR6RixnQkFBVyxHQUFHLGtCQUFXLENBQUMsTUFBTSxDQUFDO1FBRWpDLGFBQVEsR0FBRyxxQkFBYyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxrQkFBYSxHQUF3QixFQUFFLENBQUM7UUFPL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxFQUFFLEdBQUcsb0JBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFdBQVc7UUFDVCw0QkFBNEI7UUFDNUIsT0FBTztJQUNULENBQUM7SUFFRCxlQUFlLENBQUMsU0FBd0I7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RixPQUFPLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLEtBQUssTUFBSyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUEyQjtRQUMxQyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBNkI7UUFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUEvQ0QsMERBK0NDIn0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GraphBuildHook = GraphBuildHook;
|
|
4
|
+
const tegg_langchain_decorator_1 = require("@eggjs/tegg-langchain-decorator");
|
|
5
|
+
const LangGraphTracer_1 = require("../tracing/LangGraphTracer");
|
|
6
|
+
function GraphBuildHook(globalGraph) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
let langchainGraphTracerProtoNode;
|
|
9
|
+
for (const moduleNode of globalGraph.moduleGraph.nodes.values()) {
|
|
10
|
+
for (const protoNode of moduleNode.val.protos) {
|
|
11
|
+
if (((_a = protoNode.val.proto) === null || _a === void 0 ? void 0 : _a.clazz) && (LangGraphTracer_1.LangGraphTracer.isPrototypeOf(protoNode.val.proto.clazz) || protoNode.val.proto.clazz === LangGraphTracer_1.LangGraphTracer)) {
|
|
12
|
+
langchainGraphTracerProtoNode = protoNode;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
for (const moduleNode of globalGraph.moduleGraph.nodes.values()) {
|
|
17
|
+
for (const protoNode of moduleNode.val.protos) {
|
|
18
|
+
if (((_b = protoNode.val.proto) === null || _b === void 0 ? void 0 : _b.clazz) && tegg_langchain_decorator_1.AbstractStateGraph.isPrototypeOf(protoNode.val.proto.clazz)) {
|
|
19
|
+
globalGraph.addInject(moduleNode, protoNode, langchainGraphTracerProtoNode, langchainGraphTracerProtoNode.val.proto.name);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhCdWlsZEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJHcmFwaEJ1aWxkSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHdDQXdCQztBQTVCRCw4RUFBcUU7QUFDckUsZ0VBQTZEO0FBRzdELFNBQWdCLGNBQWMsQ0FBQyxXQUF3Qjs7SUFDckQsSUFBSSw2QkFBNkIsQ0FBQztJQUNsQyxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDaEUsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQSxNQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBOEIsMENBQUUsS0FBSyxLQUFJLENBQUMsaUNBQWUsQ0FBQyxhQUFhLENBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUE4QixDQUFDLEtBQUssQ0FBQyxJQUFLLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBOEIsQ0FBQyxLQUFLLEtBQUssaUNBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzVOLDZCQUE2QixHQUFHLFNBQVMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDaEUsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlDLElBQ0UsQ0FBQSxNQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBOEIsMENBQUUsS0FBSyxLQUFJLDZDQUFrQixDQUFDLGFBQWEsQ0FBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQThCLENBQUMsS0FBSyxDQUFDLEVBQzdJLENBQUM7Z0JBQ0QsV0FBVyxDQUFDLFNBQVMsQ0FDbkIsVUFBVSxFQUNWLFNBQVMsRUFDVCw2QkFBNkIsRUFDN0IsNkJBQTZCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzdDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIn0=
|