@eggjs/tegg-controller-plugin 3.71.2 → 3.73.0-beta.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/app.js +7 -1
- package/lib/AgentControllerObject.d.ts +37 -0
- package/lib/AgentControllerObject.js +202 -0
- package/lib/AgentControllerProto.d.ts +31 -0
- package/lib/AgentControllerProto.js +81 -0
- package/lib/impl/mcp/MCPControllerRegister.d.ts +1 -3
- package/lib/impl/mcp/MCPControllerRegister.js +41 -69
- package/package.json +12 -11
- package/LICENSE +0 -21
package/app.js
CHANGED
|
@@ -16,6 +16,9 @@ const EggControllerPrototypeHook_1 = require("./lib/EggControllerPrototypeHook")
|
|
|
16
16
|
const RootProtoManager_1 = require("./lib/RootProtoManager");
|
|
17
17
|
const EggControllerLoader_1 = require("./lib/EggControllerLoader");
|
|
18
18
|
const MiddlewareGraphHook_1 = require("./lib/MiddlewareGraphHook");
|
|
19
|
+
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
20
|
+
const AgentControllerProto_1 = require("./lib/AgentControllerProto");
|
|
21
|
+
const AgentControllerObject_1 = require("./lib/AgentControllerObject");
|
|
19
22
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
20
23
|
// Load Controller process
|
|
21
24
|
// 1. await add load unit is ready, controller may depend other load unit
|
|
@@ -31,6 +34,8 @@ class ControllerAppBootHook {
|
|
|
31
34
|
this.app.controllerMetaBuilderFactory = tegg_1.ControllerMetaBuilderFactory;
|
|
32
35
|
this.loadUnitHook = new AppLoadUnitControllerHook_1.AppLoadUnitControllerHook(this.controllerRegisterFactory, this.app.rootProtoManager);
|
|
33
36
|
this.controllerPrototypeHook = new EggControllerPrototypeHook_1.EggControllerPrototypeHook();
|
|
37
|
+
this.app.eggPrototypeCreatorFactory.registerPrototypeCreator(tegg_types_1.AGENT_CONTROLLER_PROTO_IMPL_TYPE, AgentControllerProto_1.AgentControllerProto.createProto);
|
|
38
|
+
AgentControllerObject_1.AgentControllerObject.setLogger(this.app.logger);
|
|
34
39
|
if (parseInt(process.versions.node.split('.')[0], 10) >= 18) {
|
|
35
40
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
36
41
|
this.mcpControllerRegister = require('./lib/impl/mcp/MCPControllerRegister').MCPControllerRegister;
|
|
@@ -40,6 +45,7 @@ class ControllerAppBootHook {
|
|
|
40
45
|
var _a;
|
|
41
46
|
this.app.loadUnitLifecycleUtil.registerLifecycle(this.loadUnitHook);
|
|
42
47
|
this.app.eggPrototypeLifecycleUtil.registerLifecycle(this.controllerPrototypeHook);
|
|
48
|
+
this.app.eggObjectFactory.registerEggObjectCreateMethod(AgentControllerProto_1.AgentControllerProto, AgentControllerObject_1.AgentControllerObject.createObject);
|
|
43
49
|
this.app.loaderFactory.registerLoader(ControllerLoadUnit_1.CONTROLLER_LOAD_UNIT, unitPath => {
|
|
44
50
|
return new EggControllerLoader_1.EggControllerLoader(unitPath);
|
|
45
51
|
});
|
|
@@ -149,4 +155,4 @@ class ControllerAppBootHook {
|
|
|
149
155
|
}
|
|
150
156
|
}
|
|
151
157
|
exports.default = ControllerAppBootHook;
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsaUVBQW9GO0FBQ3BGLCtFQUE0RTtBQUM1RSx3REFBNkU7QUFDN0Usc0NBQTJFO0FBQzNFLG1GQUFnRjtBQUNoRiwrRUFBNEU7QUFDNUUsK0VBQTRFO0FBQzVFLHNEQUErRjtBQUMvRiwrRUFBNEU7QUFDNUUsaUZBQThFO0FBQzlFLDZEQUEwRDtBQUMxRCxtRUFBZ0U7QUFDaEUsbUVBQWdFO0FBQ2hFLGtEQUFxRTtBQUNyRSxxRUFBa0U7QUFDbEUsdUVBQW9FO0FBQ3BFLDhEQUFpQztBQUVqQywwQkFBMEI7QUFDMUIseUVBQXlFO0FBQ3pFLDZDQUE2QztBQUM3QyxzREFBc0Q7QUFDdEQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUV2RSxNQUFxQixxQkFBcUI7SUFTeEMsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLHFEQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLElBQUksbUNBQWdCLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztRQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLDRCQUE0QixHQUFHLG1DQUE0QixDQUFDO1FBQ3JFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdH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
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { EggObject, EggObjectLifeCycleContext, EggObjectName, EggPrototype, EggPrototypeName } from '@eggjs/tegg-types';
|
|
2
|
+
import type { EggLogger } from 'egg';
|
|
3
|
+
import { AgentControllerProto } from './AgentControllerProto';
|
|
4
|
+
/**
|
|
5
|
+
* Custom EggObject for @AgentController classes.
|
|
6
|
+
*
|
|
7
|
+
* Replicates the full EggObjectImpl.initWithInjectProperty lifecycle and
|
|
8
|
+
* inserts AgentRuntime delegate installation between postInject and init
|
|
9
|
+
* hooks — exactly where the user's `init()` expects runtime to be ready.
|
|
10
|
+
*/
|
|
11
|
+
export declare class AgentControllerObject implements EggObject {
|
|
12
|
+
private static logger;
|
|
13
|
+
private _obj;
|
|
14
|
+
private status;
|
|
15
|
+
private runtime;
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly name: EggPrototypeName;
|
|
18
|
+
readonly proto: AgentControllerProto;
|
|
19
|
+
/** Inject a logger to be used by all AgentRuntime instances. */
|
|
20
|
+
static setLogger(logger: EggLogger): void;
|
|
21
|
+
constructor(name: EggObjectName, proto: AgentControllerProto);
|
|
22
|
+
get obj(): object;
|
|
23
|
+
get isReady(): boolean;
|
|
24
|
+
injectProperty(name: EggObjectName, descriptor: PropertyDescriptor): void;
|
|
25
|
+
/**
|
|
26
|
+
* Full lifecycle sequence mirroring EggObjectImpl.initWithInjectProperty,
|
|
27
|
+
* with AgentRuntime installation inserted between postInject and init.
|
|
28
|
+
*/
|
|
29
|
+
init(ctx: EggObjectLifeCycleContext): Promise<void>;
|
|
30
|
+
destroy(ctx: EggObjectLifeCycleContext): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Create AgentRuntime and install delegate methods on the instance.
|
|
33
|
+
* Logic ported from the removed enhanceAgentController.ts.
|
|
34
|
+
*/
|
|
35
|
+
private installAgentRuntime;
|
|
36
|
+
static createObject(name: EggObjectName, proto: EggPrototype, lifecycleContext: EggObjectLifeCycleContext): Promise<AgentControllerObject>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AgentControllerObject = void 0;
|
|
4
|
+
const agent_runtime_1 = require("@eggjs/agent-runtime");
|
|
5
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
6
|
+
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
7
|
+
const egg_module_common_1 = require("@eggjs/egg-module-common");
|
|
8
|
+
const tegg_runtime_1 = require("@eggjs/tegg-runtime");
|
|
9
|
+
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
10
|
+
const AGENT_METHOD_NAMES = [
|
|
11
|
+
'createThread',
|
|
12
|
+
'getThread',
|
|
13
|
+
'asyncRun',
|
|
14
|
+
'syncRun',
|
|
15
|
+
'getRun',
|
|
16
|
+
'cancelRun',
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* Custom EggObject for @AgentController classes.
|
|
20
|
+
*
|
|
21
|
+
* Replicates the full EggObjectImpl.initWithInjectProperty lifecycle and
|
|
22
|
+
* inserts AgentRuntime delegate installation between postInject and init
|
|
23
|
+
* hooks — exactly where the user's `init()` expects runtime to be ready.
|
|
24
|
+
*/
|
|
25
|
+
class AgentControllerObject {
|
|
26
|
+
/** Inject a logger to be used by all AgentRuntime instances. */
|
|
27
|
+
static setLogger(logger) {
|
|
28
|
+
AgentControllerObject.logger = logger;
|
|
29
|
+
}
|
|
30
|
+
constructor(name, proto) {
|
|
31
|
+
this.status = tegg_types_1.EggObjectStatus.PENDING;
|
|
32
|
+
this.name = name;
|
|
33
|
+
this.proto = proto;
|
|
34
|
+
const ctx = tegg_runtime_1.ContextHandler.getContext();
|
|
35
|
+
this.id = tegg_1.IdenticalUtil.createObjectId(this.proto.id, ctx === null || ctx === void 0 ? void 0 : ctx.id);
|
|
36
|
+
}
|
|
37
|
+
get obj() {
|
|
38
|
+
return this._obj;
|
|
39
|
+
}
|
|
40
|
+
get isReady() {
|
|
41
|
+
return this.status === tegg_types_1.EggObjectStatus.READY;
|
|
42
|
+
}
|
|
43
|
+
injectProperty(name, descriptor) {
|
|
44
|
+
Reflect.defineProperty(this._obj, name, descriptor);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Full lifecycle sequence mirroring EggObjectImpl.initWithInjectProperty,
|
|
48
|
+
* with AgentRuntime installation inserted between postInject and init.
|
|
49
|
+
*/
|
|
50
|
+
async init(ctx) {
|
|
51
|
+
var _a, _b, _c, _d;
|
|
52
|
+
try {
|
|
53
|
+
// 1. Construct object
|
|
54
|
+
this._obj = this.proto.constructEggObject();
|
|
55
|
+
const objLifecycleHook = this._obj;
|
|
56
|
+
// 2. Global preCreate hook
|
|
57
|
+
await tegg_runtime_1.EggObjectLifecycleUtil.objectPreCreate(ctx, this);
|
|
58
|
+
// 3. Self postConstruct hook
|
|
59
|
+
const postConstructMethod = (_a = tegg_runtime_1.EggObjectLifecycleUtil.getLifecycleHook('postConstruct', this.proto)) !== null && _a !== void 0 ? _a : 'postConstruct';
|
|
60
|
+
if (objLifecycleHook[postConstructMethod]) {
|
|
61
|
+
await objLifecycleHook[postConstructMethod](ctx, this);
|
|
62
|
+
}
|
|
63
|
+
// 4. Self preInject hook
|
|
64
|
+
const preInjectMethod = (_b = tegg_runtime_1.EggObjectLifecycleUtil.getLifecycleHook('preInject', this.proto)) !== null && _b !== void 0 ? _b : 'preInject';
|
|
65
|
+
if (objLifecycleHook[preInjectMethod]) {
|
|
66
|
+
await objLifecycleHook[preInjectMethod](ctx, this);
|
|
67
|
+
}
|
|
68
|
+
// 5. Inject dependencies
|
|
69
|
+
await Promise.all(this.proto.injectObjects.map(async (injectObject) => {
|
|
70
|
+
const proto = injectObject.proto;
|
|
71
|
+
const loadUnit = tegg_metadata_1.LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
|
|
72
|
+
if (!loadUnit) {
|
|
73
|
+
throw new Error(`can not find load unit: ${proto.loadUnitId}`);
|
|
74
|
+
}
|
|
75
|
+
if (this.proto.initType !== tegg_types_1.ObjectInitType.CONTEXT &&
|
|
76
|
+
injectObject.proto.initType === tegg_types_1.ObjectInitType.CONTEXT) {
|
|
77
|
+
this.injectProperty(injectObject.refName, tegg_runtime_1.EggObjectUtil.contextEggObjectGetProperty(proto, injectObject.objName));
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const injectObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName);
|
|
81
|
+
this.injectProperty(injectObject.refName, tegg_runtime_1.EggObjectUtil.eggObjectGetProperty(injectObj));
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
// 6. Global postCreate hook
|
|
85
|
+
await tegg_runtime_1.EggObjectLifecycleUtil.objectPostCreate(ctx, this);
|
|
86
|
+
// 7. Self postInject hook
|
|
87
|
+
const postInjectMethod = (_c = tegg_runtime_1.EggObjectLifecycleUtil.getLifecycleHook('postInject', this.proto)) !== null && _c !== void 0 ? _c : 'postInject';
|
|
88
|
+
if (objLifecycleHook[postInjectMethod]) {
|
|
89
|
+
await objLifecycleHook[postInjectMethod](ctx, this);
|
|
90
|
+
}
|
|
91
|
+
// === AgentRuntime installation (before user init) ===
|
|
92
|
+
await this.installAgentRuntime();
|
|
93
|
+
// 8. Self init hook (user's init())
|
|
94
|
+
const initMethod = (_d = tegg_runtime_1.EggObjectLifecycleUtil.getLifecycleHook('init', this.proto)) !== null && _d !== void 0 ? _d : 'init';
|
|
95
|
+
if (objLifecycleHook[initMethod]) {
|
|
96
|
+
await objLifecycleHook[initMethod](ctx, this);
|
|
97
|
+
}
|
|
98
|
+
// 9. Ready
|
|
99
|
+
this.status = tegg_types_1.EggObjectStatus.READY;
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
// Clean up runtime if it was created but init failed
|
|
103
|
+
if (this.runtime) {
|
|
104
|
+
try {
|
|
105
|
+
await this.runtime.destroy();
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// Swallow cleanup errors to preserve the original exception
|
|
109
|
+
}
|
|
110
|
+
this.runtime = undefined;
|
|
111
|
+
}
|
|
112
|
+
this.status = tegg_types_1.EggObjectStatus.ERROR;
|
|
113
|
+
throw e;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
async destroy(ctx) {
|
|
117
|
+
var _a, _b;
|
|
118
|
+
if (this.status === tegg_types_1.EggObjectStatus.READY) {
|
|
119
|
+
this.status = tegg_types_1.EggObjectStatus.DESTROYING;
|
|
120
|
+
// Destroy AgentRuntime first (waits for in-flight tasks)
|
|
121
|
+
if (this.runtime) {
|
|
122
|
+
await this.runtime.destroy();
|
|
123
|
+
}
|
|
124
|
+
// Global preDestroy hook
|
|
125
|
+
await tegg_runtime_1.EggObjectLifecycleUtil.objectPreDestroy(ctx, this);
|
|
126
|
+
// Self lifecycle hooks
|
|
127
|
+
const objLifecycleHook = this._obj;
|
|
128
|
+
const preDestroyMethod = (_a = tegg_runtime_1.EggObjectLifecycleUtil.getLifecycleHook('preDestroy', this.proto)) !== null && _a !== void 0 ? _a : 'preDestroy';
|
|
129
|
+
if (objLifecycleHook[preDestroyMethod]) {
|
|
130
|
+
await objLifecycleHook[preDestroyMethod](ctx, this);
|
|
131
|
+
}
|
|
132
|
+
const destroyMethod = (_b = tegg_runtime_1.EggObjectLifecycleUtil.getLifecycleHook('destroy', this.proto)) !== null && _b !== void 0 ? _b : 'destroy';
|
|
133
|
+
if (objLifecycleHook[destroyMethod]) {
|
|
134
|
+
await objLifecycleHook[destroyMethod](ctx, this);
|
|
135
|
+
}
|
|
136
|
+
this.status = tegg_types_1.EggObjectStatus.DESTROYED;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Create AgentRuntime and install delegate methods on the instance.
|
|
141
|
+
* Logic ported from the removed enhanceAgentController.ts.
|
|
142
|
+
*/
|
|
143
|
+
async installAgentRuntime() {
|
|
144
|
+
const instance = this._obj;
|
|
145
|
+
// Determine which methods are stubs vs user-defined
|
|
146
|
+
const stubMethods = new Set();
|
|
147
|
+
for (const name of AGENT_METHOD_NAMES) {
|
|
148
|
+
const method = instance[name];
|
|
149
|
+
if (typeof method !== 'function' || tegg_1.AgentInfoUtil.isNotImplemented(method)) {
|
|
150
|
+
stubMethods.add(name);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
const streamRunFn = instance.streamRun;
|
|
154
|
+
const streamRunIsStub = typeof streamRunFn !== 'function' || tegg_1.AgentInfoUtil.isNotImplemented(streamRunFn);
|
|
155
|
+
// Create store — user must implement createStore()
|
|
156
|
+
let store;
|
|
157
|
+
const createStoreFn = instance.createStore;
|
|
158
|
+
if (typeof createStoreFn === 'function') {
|
|
159
|
+
store = (await Reflect.apply(createStoreFn, this._obj, []));
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
throw new Error('@AgentController requires a createStore() method. ' +
|
|
163
|
+
'Implement createStore() in your controller to provide an AgentStore instance.');
|
|
164
|
+
}
|
|
165
|
+
if (store.init) {
|
|
166
|
+
await store.init();
|
|
167
|
+
}
|
|
168
|
+
// Create runtime with AgentRuntime.create factory
|
|
169
|
+
const runtime = agent_runtime_1.AgentRuntime.create({
|
|
170
|
+
executor: this._obj,
|
|
171
|
+
store,
|
|
172
|
+
logger: AgentControllerObject.logger,
|
|
173
|
+
});
|
|
174
|
+
this.runtime = runtime;
|
|
175
|
+
instance[agent_runtime_1.AGENT_RUNTIME] = runtime;
|
|
176
|
+
// Install delegate methods for stubs (type-safe: all names are keys of AgentRuntime)
|
|
177
|
+
for (const methodName of stubMethods) {
|
|
178
|
+
const runtimeMethod = runtime[methodName].bind(runtime);
|
|
179
|
+
instance[methodName] = runtimeMethod;
|
|
180
|
+
}
|
|
181
|
+
// streamRun needs special handling: create HttpSSEWriter from request context
|
|
182
|
+
if (streamRunIsStub) {
|
|
183
|
+
instance.streamRun = async (input) => {
|
|
184
|
+
const runtimeCtx = tegg_runtime_1.ContextHandler.getContext();
|
|
185
|
+
if (!runtimeCtx) {
|
|
186
|
+
throw new Error('streamRun must be called within a request context');
|
|
187
|
+
}
|
|
188
|
+
const eggCtx = runtimeCtx.get(egg_module_common_1.EGG_CONTEXT);
|
|
189
|
+
eggCtx.respond = false;
|
|
190
|
+
const writer = new agent_runtime_1.HttpSSEWriter(eggCtx.res);
|
|
191
|
+
return runtime.streamRun(input, writer);
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
static async createObject(name, proto, lifecycleContext) {
|
|
196
|
+
const obj = new AgentControllerObject(name, proto);
|
|
197
|
+
await obj.init(lifecycleContext);
|
|
198
|
+
return obj;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.AgentControllerObject = AgentControllerObject;
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWdlbnRDb250cm9sbGVyT2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQWdlbnRDb250cm9sbGVyT2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUFzRztBQUN0RyxzQ0FBMkQ7QUFDM0Qsd0RBQXVEO0FBQ3ZELGdFQUF1RDtBQUN2RCxzREFBaUg7QUFTakgsa0RBQW9FO0FBU3BFLE1BQU0sa0JBQWtCLEdBQXNCO0lBQzVDLGNBQWM7SUFDZCxXQUFXO0lBQ1gsVUFBVTtJQUNWLFNBQVM7SUFDVCxRQUFRO0lBQ1IsV0FBVztDQUNaLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFhLHFCQUFxQjtJQVdoQyxnRUFBZ0U7SUFDaEUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFpQjtRQUNoQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZLElBQW1CLEVBQUUsS0FBMkI7UUFacEQsV0FBTSxHQUFvQiw0QkFBZSxDQUFDLE9BQU8sQ0FBQztRQWF4RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixNQUFNLEdBQUcsR0FBRyw2QkFBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxFQUFFLEdBQUcsb0JBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyw0QkFBZSxDQUFDLEtBQUssQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQW1CLEVB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
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { AccessLevel, EggPrototype, EggPrototypeLifecycleContext, EggPrototypeName, InjectConstructorProto, InjectObjectProto, InjectType, MetaDataKey, ObjectInitTypeLike, QualifierAttribute, QualifierInfo, QualifierValue } from '@eggjs/tegg-types';
|
|
2
|
+
/**
|
|
3
|
+
* Wraps a standard EggPrototypeImpl (created by the DEFAULT creator) to
|
|
4
|
+
* provide a distinct class identity so that EggObjectFactory can dispatch
|
|
5
|
+
* to AgentControllerObject.createObject.
|
|
6
|
+
*
|
|
7
|
+
* All EggPrototype interface members are delegated to the inner proto.
|
|
8
|
+
* Symbol-keyed properties (qualifier descriptors set by the runtime) are
|
|
9
|
+
* copied from the delegate in the constructor via Object.defineProperty.
|
|
10
|
+
*/
|
|
11
|
+
export declare class AgentControllerProto implements EggPrototype {
|
|
12
|
+
[key: symbol]: PropertyDescriptor;
|
|
13
|
+
private readonly delegate;
|
|
14
|
+
constructor(delegate: EggPrototype);
|
|
15
|
+
get id(): string;
|
|
16
|
+
get name(): EggPrototypeName;
|
|
17
|
+
get initType(): ObjectInitTypeLike;
|
|
18
|
+
get accessLevel(): AccessLevel;
|
|
19
|
+
get loadUnitId(): string;
|
|
20
|
+
get injectObjects(): Array<InjectObjectProto | InjectConstructorProto>;
|
|
21
|
+
get injectType(): InjectType | undefined;
|
|
22
|
+
get className(): string | undefined;
|
|
23
|
+
get multiInstanceConstructorIndex(): number | undefined;
|
|
24
|
+
get multiInstanceConstructorAttributes(): QualifierAttribute[] | undefined;
|
|
25
|
+
getMetaData<T>(metadataKey: MetaDataKey): T | undefined;
|
|
26
|
+
verifyQualifier(qualifier: QualifierInfo): boolean;
|
|
27
|
+
verifyQualifiers(qualifiers: QualifierInfo[]): boolean;
|
|
28
|
+
getQualifier(attribute: QualifierAttribute): QualifierValue | undefined;
|
|
29
|
+
constructEggObject(...args: any): object;
|
|
30
|
+
static createProto(ctx: EggPrototypeLifecycleContext): AgentControllerProto;
|
|
31
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AgentControllerProto = void 0;
|
|
4
|
+
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
5
|
+
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a standard EggPrototypeImpl (created by the DEFAULT creator) to
|
|
8
|
+
* provide a distinct class identity so that EggObjectFactory can dispatch
|
|
9
|
+
* to AgentControllerObject.createObject.
|
|
10
|
+
*
|
|
11
|
+
* All EggPrototype interface members are delegated to the inner proto.
|
|
12
|
+
* Symbol-keyed properties (qualifier descriptors set by the runtime) are
|
|
13
|
+
* copied from the delegate in the constructor via Object.defineProperty.
|
|
14
|
+
*/
|
|
15
|
+
class AgentControllerProto {
|
|
16
|
+
constructor(delegate) {
|
|
17
|
+
this.delegate = delegate;
|
|
18
|
+
// Copy symbol-keyed properties from delegate (qualifier descriptors, etc.)
|
|
19
|
+
for (const sym of Object.getOwnPropertySymbols(delegate)) {
|
|
20
|
+
const desc = Object.getOwnPropertyDescriptor(delegate, sym);
|
|
21
|
+
if (desc) {
|
|
22
|
+
Object.defineProperty(this, sym, desc);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get id() {
|
|
27
|
+
return this.delegate.id;
|
|
28
|
+
}
|
|
29
|
+
get name() {
|
|
30
|
+
return this.delegate.name;
|
|
31
|
+
}
|
|
32
|
+
get initType() {
|
|
33
|
+
return this.delegate.initType;
|
|
34
|
+
}
|
|
35
|
+
get accessLevel() {
|
|
36
|
+
return this.delegate.accessLevel;
|
|
37
|
+
}
|
|
38
|
+
get loadUnitId() {
|
|
39
|
+
return this.delegate.loadUnitId;
|
|
40
|
+
}
|
|
41
|
+
get injectObjects() {
|
|
42
|
+
return this.delegate.injectObjects;
|
|
43
|
+
}
|
|
44
|
+
get injectType() {
|
|
45
|
+
return this.delegate.injectType;
|
|
46
|
+
}
|
|
47
|
+
get className() {
|
|
48
|
+
return this.delegate.className;
|
|
49
|
+
}
|
|
50
|
+
get multiInstanceConstructorIndex() {
|
|
51
|
+
return this.delegate.multiInstanceConstructorIndex;
|
|
52
|
+
}
|
|
53
|
+
get multiInstanceConstructorAttributes() {
|
|
54
|
+
return this.delegate.multiInstanceConstructorAttributes;
|
|
55
|
+
}
|
|
56
|
+
getMetaData(metadataKey) {
|
|
57
|
+
return this.delegate.getMetaData(metadataKey);
|
|
58
|
+
}
|
|
59
|
+
verifyQualifier(qualifier) {
|
|
60
|
+
return this.delegate.verifyQualifier(qualifier);
|
|
61
|
+
}
|
|
62
|
+
verifyQualifiers(qualifiers) {
|
|
63
|
+
return this.delegate.verifyQualifiers(qualifiers);
|
|
64
|
+
}
|
|
65
|
+
getQualifier(attribute) {
|
|
66
|
+
return this.delegate.getQualifier(attribute);
|
|
67
|
+
}
|
|
68
|
+
constructEggObject(...args) {
|
|
69
|
+
return this.delegate.constructEggObject(...args);
|
|
70
|
+
}
|
|
71
|
+
static createProto(ctx) {
|
|
72
|
+
const defaultCreator = tegg_metadata_1.EggPrototypeCreatorFactory.getPrototypeCreator(tegg_types_1.DEFAULT_PROTO_IMPL_TYPE);
|
|
73
|
+
if (!defaultCreator) {
|
|
74
|
+
throw new Error(`Default prototype creator (${tegg_types_1.DEFAULT_PROTO_IMPL_TYPE}) not registered`);
|
|
75
|
+
}
|
|
76
|
+
const delegate = defaultCreator(ctx);
|
|
77
|
+
return new AgentControllerProto(delegate);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.AgentControllerProto = AgentControllerProto;
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWdlbnRDb250cm9sbGVyUHJvdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJBZ2VudENvbnRyb2xsZXJQcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3REFBa0U7QUFnQmxFLGtEQUE0RDtBQUU1RDs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsb0JBQW9CO0lBSy9CLFlBQVksUUFBc0I7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsMkVBQTJFO1FBQzNFLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDekQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM1RCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLDZCQUE2QjtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUM7SUFDckQsQ0FBQztJQUNELElBQUksa0NBQWtDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQXdCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUF3QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUEyQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUE2QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFHLElBQVM7UUFDN0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBaUM7UUFDbEQsTUFBTSxjQUFjLEdBQ2xCLDBDQUEwQixDQUFDLG1CQUFtQixDQUFDLG9DQUF1QixDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLG9DQUF1QixrQkFBa0IsQ0FBQyxDQUFDO1FBQzNGLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQTdFRCxvREE2RUMifQ==
|
|
@@ -46,10 +46,8 @@ export declare class MCPControllerRegister implements ControllerRegister {
|
|
|
46
46
|
}>;
|
|
47
47
|
mcpServerHelperMap: Record<string, () => MCPServerHelper>;
|
|
48
48
|
mcpServerMap: Record<string, McpServer>;
|
|
49
|
-
statelessMcpServerHelperMap: Record<string, MCPServerHelper>;
|
|
50
49
|
private controllerMeta;
|
|
51
50
|
mcpConfig: MCPConfig;
|
|
52
|
-
statelessTransportMap: Record<string, StreamableHTTPServerTransport>;
|
|
53
51
|
streamTransports: Record<string, StreamableHTTPServerTransport>;
|
|
54
52
|
sseTransportsRequestMap: Map<InnerSSEServerTransport, Record<string, {
|
|
55
53
|
resolve: (value: PromiseLike<null> | null) => void;
|
|
@@ -66,7 +64,7 @@ export declare class MCPControllerRegister implements ControllerRegister {
|
|
|
66
64
|
static create(proto: EggPrototype, controllerMeta: ControllerMetadata, app: Application): MCPControllerRegister;
|
|
67
65
|
constructor(_proto: EggPrototype, controllerMeta: MCPControllerMeta, app: Application);
|
|
68
66
|
static addHook(hook: MCPControllerHook): void;
|
|
69
|
-
static connectStatelessStreamTransport(
|
|
67
|
+
static connectStatelessStreamTransport(_name?: string): Promise<void>;
|
|
70
68
|
static clean(): void;
|
|
71
69
|
mcpStatelessStreamServerInit(name?: string): void;
|
|
72
70
|
mcpStreamServerInit(name?: string): void;
|
|
@@ -56,8 +56,6 @@ class MCPControllerRegister {
|
|
|
56
56
|
this.sseConnections = new Map();
|
|
57
57
|
this.mcpServerHelperMap = {};
|
|
58
58
|
this.mcpServerMap = {};
|
|
59
|
-
this.statelessMcpServerHelperMap = {};
|
|
60
|
-
this.statelessTransportMap = {};
|
|
61
59
|
this.streamTransports = {};
|
|
62
60
|
// eslint-disable-next-line no-spaced-func
|
|
63
61
|
this.sseTransportsRequestMap = new Map();
|
|
@@ -72,41 +70,10 @@ class MCPControllerRegister {
|
|
|
72
70
|
static addHook(hook) {
|
|
73
71
|
MCPControllerRegister.hooks.push(hook);
|
|
74
72
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const statelessTransport = MCPControllerRegister.instance.statelessTransportMap[name !== null && name !== void 0 ? name : 'default'];
|
|
80
|
-
if (serverHelper && statelessTransport) {
|
|
81
|
-
await serverHelper.server.connect(statelessTransport);
|
|
82
|
-
// 由于 mcp server stateless 需要我们在这里 init
|
|
83
|
-
// 以防止后续请求进入时初次 init 后,请求打到别的进程,而别的进程没有 init
|
|
84
|
-
const socket = new node_net_1.Socket();
|
|
85
|
-
const req = new node_http_1.IncomingMessage(socket);
|
|
86
|
-
const res = new node_http_1.ServerResponse(req);
|
|
87
|
-
req.method = 'POST';
|
|
88
|
-
req.url =
|
|
89
|
-
MCPControllerRegister.instance.mcpConfig.getStatelessStreamPath(name);
|
|
90
|
-
req.headers = {
|
|
91
|
-
accept: 'application/json, text/event-stream',
|
|
92
|
-
'content-type': 'application/json',
|
|
93
|
-
};
|
|
94
|
-
const initBody = {
|
|
95
|
-
jsonrpc: '2.0',
|
|
96
|
-
id: 0,
|
|
97
|
-
method: 'initialize',
|
|
98
|
-
params: {
|
|
99
|
-
protocolVersion: '2024-11-05',
|
|
100
|
-
capabilities: {},
|
|
101
|
-
clientInfo: {
|
|
102
|
-
name: 'init-client',
|
|
103
|
-
version: '1.0.0',
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
await statelessTransport.handleRequest(req, res, initBody);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
74
|
+
static async connectStatelessStreamTransport(_name) {
|
|
75
|
+
// No-op: MCP SDK >= 1.26 requires stateless transports to be single-use,
|
|
76
|
+
// so transports are now created per-request in the route handler.
|
|
110
77
|
}
|
|
111
78
|
static clean() {
|
|
112
79
|
if (this.instance) {
|
|
@@ -117,23 +84,38 @@ class MCPControllerRegister {
|
|
|
117
84
|
mcpStatelessStreamServerInit(name) {
|
|
118
85
|
const postRouterFunc = this.router.post;
|
|
119
86
|
const self = this;
|
|
120
|
-
const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
|
|
121
|
-
sessionIdGenerator: undefined,
|
|
122
|
-
});
|
|
123
|
-
self.statelessTransportMap[name !== null && name !== void 0 ? name : 'default'] = transport;
|
|
124
87
|
let mw = self.app.middleware.teggCtxLifecycleMiddleware();
|
|
125
88
|
if (self.globalMiddlewares) {
|
|
126
89
|
mw = (0, koa_compose_1.default)([mw, self.globalMiddlewares]);
|
|
127
90
|
}
|
|
128
|
-
const onmessage = transport.onmessage;
|
|
129
|
-
transport.onmessage = async (message, extra) => {
|
|
130
|
-
if (self.app.currentContext) {
|
|
131
|
-
self.app.currentContext.mcpArg = message;
|
|
132
|
-
}
|
|
133
|
-
onmessage && await onmessage(message, extra);
|
|
134
|
-
};
|
|
135
91
|
const initHandler = async (ctx) => {
|
|
136
92
|
var _a;
|
|
93
|
+
// Create fresh transport and server per request
|
|
94
|
+
// MCP SDK >= 1.26 requires stateless transports to be single-use
|
|
95
|
+
const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
|
|
96
|
+
sessionIdGenerator: undefined,
|
|
97
|
+
});
|
|
98
|
+
const mcpServerHelper = self.mcpServerHelperMap[name !== null && name !== void 0 ? name : 'default']();
|
|
99
|
+
const registerEntry = self.registerMap[name !== null && name !== void 0 ? name : 'default'];
|
|
100
|
+
if (registerEntry) {
|
|
101
|
+
for (const tool of registerEntry.tools) {
|
|
102
|
+
await mcpServerHelper.mcpToolRegister(tool.getOrCreateEggObject, tool.proto, tool.meta);
|
|
103
|
+
}
|
|
104
|
+
for (const resource of registerEntry.resources) {
|
|
105
|
+
await mcpServerHelper.mcpResourceRegister(resource.getOrCreateEggObject, resource.proto, resource.meta);
|
|
106
|
+
}
|
|
107
|
+
for (const prompt of registerEntry.prompts) {
|
|
108
|
+
await mcpServerHelper.mcpPromptRegister(prompt.getOrCreateEggObject, prompt.proto, prompt.meta);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
await mcpServerHelper.server.connect(transport);
|
|
112
|
+
const onmessage = transport.onmessage;
|
|
113
|
+
transport.onmessage = async (message, extra) => {
|
|
114
|
+
if (self.app.currentContext) {
|
|
115
|
+
self.app.currentContext.mcpArg = message;
|
|
116
|
+
}
|
|
117
|
+
onmessage && await onmessage(message, extra);
|
|
118
|
+
};
|
|
137
119
|
if (MCPControllerRegister.hooks.length > 0) {
|
|
138
120
|
for (const hook of MCPControllerRegister.hooks) {
|
|
139
121
|
await ((_a = hook.preHandle) === null || _a === void 0 ? void 0 : _a.call(hook, self.app.currentContext));
|
|
@@ -549,7 +531,7 @@ class MCPControllerRegister {
|
|
|
549
531
|
this.pingIntervals[sessionId] = timerId;
|
|
550
532
|
}
|
|
551
533
|
async register() {
|
|
552
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l
|
|
534
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
553
535
|
for (const proto of this.controllerProtos) {
|
|
554
536
|
if (this.registeredControllerProtos.includes(proto)) {
|
|
555
537
|
continue;
|
|
@@ -565,12 +547,6 @@ class MCPControllerRegister {
|
|
|
565
547
|
hooks: MCPControllerRegister.hooks,
|
|
566
548
|
});
|
|
567
549
|
};
|
|
568
|
-
this.statelessMcpServerHelperMap[(_c = metadata.name) !== null && _c !== void 0 ? _c : 'default'] =
|
|
569
|
-
new MCPServerHelper_1.MCPServerHelper({
|
|
570
|
-
name: (_d = this.controllerMeta.name) !== null && _d !== void 0 ? _d : `chair-mcp-${(_e = metadata.name) !== null && _e !== void 0 ? _e : this.app.name}-server`,
|
|
571
|
-
version: (_f = this.controllerMeta.version) !== null && _f !== void 0 ? _f : '1.0.0',
|
|
572
|
-
hooks: MCPControllerRegister.hooks,
|
|
573
|
-
});
|
|
574
550
|
this.mcpStatelessStreamServerInit(metadata.name);
|
|
575
551
|
this.mcpStreamServerInit(metadata.name);
|
|
576
552
|
this.mcpServerInit(metadata.name);
|
|
@@ -579,51 +555,47 @@ class MCPControllerRegister {
|
|
|
579
555
|
this.mcpConfig.setMultipleServerPath(this.app, metadata.name);
|
|
580
556
|
}
|
|
581
557
|
}
|
|
582
|
-
const statelessMcpServerHelper = this.statelessMcpServerHelperMap[(_g = metadata.name) !== null && _g !== void 0 ? _g : 'default'];
|
|
583
558
|
for (const prompt of metadata.prompts) {
|
|
584
|
-
if (!this.registerMap[(
|
|
585
|
-
this.registerMap[(
|
|
559
|
+
if (!this.registerMap[(_c = metadata.name) !== null && _c !== void 0 ? _c : 'default']) {
|
|
560
|
+
this.registerMap[(_d = metadata.name) !== null && _d !== void 0 ? _d : 'default'] = {
|
|
586
561
|
prompts: [],
|
|
587
562
|
resources: [],
|
|
588
563
|
tools: [],
|
|
589
564
|
};
|
|
590
565
|
}
|
|
591
|
-
this.registerMap[(
|
|
566
|
+
this.registerMap[(_e = metadata.name) !== null && _e !== void 0 ? _e : 'default'].prompts.push({
|
|
592
567
|
getOrCreateEggObject: this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory),
|
|
593
568
|
proto,
|
|
594
569
|
meta: prompt,
|
|
595
570
|
});
|
|
596
|
-
await statelessMcpServerHelper.mcpPromptRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, prompt);
|
|
597
571
|
}
|
|
598
572
|
for (const resource of metadata.resources) {
|
|
599
|
-
if (!this.registerMap[(
|
|
600
|
-
this.registerMap[(
|
|
573
|
+
if (!this.registerMap[(_f = metadata.name) !== null && _f !== void 0 ? _f : 'default']) {
|
|
574
|
+
this.registerMap[(_g = metadata.name) !== null && _g !== void 0 ? _g : 'default'] = {
|
|
601
575
|
prompts: [],
|
|
602
576
|
resources: [],
|
|
603
577
|
tools: [],
|
|
604
578
|
};
|
|
605
579
|
}
|
|
606
|
-
this.registerMap[(
|
|
580
|
+
this.registerMap[(_h = metadata.name) !== null && _h !== void 0 ? _h : 'default'].resources.push({
|
|
607
581
|
getOrCreateEggObject: this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory),
|
|
608
582
|
proto,
|
|
609
583
|
meta: resource,
|
|
610
584
|
});
|
|
611
|
-
await statelessMcpServerHelper.mcpResourceRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, resource);
|
|
612
585
|
}
|
|
613
586
|
for (const tool of metadata.tools) {
|
|
614
|
-
if (!this.registerMap[(
|
|
615
|
-
this.registerMap[(
|
|
587
|
+
if (!this.registerMap[(_j = metadata.name) !== null && _j !== void 0 ? _j : 'default']) {
|
|
588
|
+
this.registerMap[(_k = metadata.name) !== null && _k !== void 0 ? _k : 'default'] = {
|
|
616
589
|
prompts: [],
|
|
617
590
|
resources: [],
|
|
618
591
|
tools: [],
|
|
619
592
|
};
|
|
620
593
|
}
|
|
621
|
-
this.registerMap[(
|
|
594
|
+
this.registerMap[(_l = metadata.name) !== null && _l !== void 0 ? _l : 'default'].tools.push({
|
|
622
595
|
getOrCreateEggObject: this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory),
|
|
623
596
|
proto,
|
|
624
597
|
meta: tool,
|
|
625
598
|
});
|
|
626
|
-
await statelessMcpServerHelper.mcpToolRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, tool);
|
|
627
599
|
}
|
|
628
600
|
this.registeredControllerProtos.push(proto);
|
|
629
601
|
}
|
|
@@ -631,4 +603,4 @@ class MCPControllerRegister {
|
|
|
631
603
|
}
|
|
632
604
|
exports.MCPControllerRegister = MCPControllerRegister;
|
|
633
605
|
MCPControllerRegister.hooks = [];
|
|
634
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTUNQQ29udHJvbGxlclJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhEQUFpQztBQUNqQyx5Q0FBa0U7QUFDbEUsdUNBQWtDO0FBRWxDLHNDQVdxQjtBQUlyQixvRUFBNkU7QUFDN0UsMEZBQW1HO0FBRW5HLGlFQUE2SDtBQUM3SCw4REFBcUM7QUFDckMsOERBQWtDO0FBRWxDLHdEQUFrQztBQUNsQyxnRUFBdUM7QUFFdkMsMkNBQXdDO0FBQ3hDLHVEQUFvRDtBQTZCcEQsTUFBTSx1QkFBd0IsU0FBUSwyQkFBa0I7SUFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUF1Qjs7UUFDaEMsSUFBSSxHQUFHLEdBQWlCLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxHQUFHLEdBQUcsQ0FBVSxDQUFDO1FBQ25CLENBQUM7Z0JBQVMsQ0FBQztZQUNULG1FQUFtRTtZQUNuRSxNQUFNLEdBQUcsR0FBRyxNQUFBLHFCQUFxQixDQUFDLFFBQVEsMENBQUUsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlFLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFBLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRyxDQUFDLG1DQUFJLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQyxPQUFP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
|
|
606
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTUNQQ29udHJvbGxlclJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhEQUFpQztBQUNqQyx5Q0FBa0U7QUFDbEUsdUNBQWtDO0FBRWxDLHNDQVdxQjtBQUlyQixvRUFBNkU7QUFDN0UsMEZBQW1HO0FBRW5HLGlFQUE2SDtBQUM3SCw4REFBcUM7QUFDckMsOERBQWtDO0FBRWxDLHdEQUFrQztBQUNsQyxnRUFBdUM7QUFFdkMsMkNBQXdDO0FBQ3hDLHVEQUFvRDtBQTZCcEQsTUFBTSx1QkFBd0IsU0FBUSwyQkFBa0I7SUFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUF1Qjs7UUFDaEMsSUFBSSxHQUFHLEdBQWlCLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxHQUFHLEdBQUcsQ0FBVSxDQUFDO1FBQ25CLENBQUM7Z0JBQVMsQ0FBQztZQUNULG1FQUFtRTtZQUNuRSxNQUFNLEdBQUcsR0FBRyxNQUFBLHFCQUFxQixDQUFDLFFBQVEsMENBQUUsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlFLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFBLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRyxDQUFDLG1DQUFJLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQyxPQUFP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
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"tegg"
|
|
8
8
|
]
|
|
9
9
|
},
|
|
10
|
-
"version": "3.
|
|
10
|
+
"version": "3.73.0-beta.0",
|
|
11
11
|
"description": "controller decorator for egg",
|
|
12
12
|
"keywords": [
|
|
13
13
|
"egg",
|
|
@@ -48,13 +48,14 @@
|
|
|
48
48
|
"node": ">=14.0.0"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@eggjs/
|
|
51
|
+
"@eggjs/agent-runtime": "^3.73.0-beta.0",
|
|
52
|
+
"@eggjs/egg-module-common": "^3.73.0-beta.0",
|
|
52
53
|
"@eggjs/router": "^2.0.1",
|
|
53
|
-
"@eggjs/tegg": "^3.
|
|
54
|
-
"@eggjs/tegg-common-util": "^3.
|
|
55
|
-
"@eggjs/tegg-loader": "^3.
|
|
56
|
-
"@eggjs/tegg-metadata": "^3.
|
|
57
|
-
"@eggjs/tegg-runtime": "^3.
|
|
54
|
+
"@eggjs/tegg": "^3.73.0-beta.0",
|
|
55
|
+
"@eggjs/tegg-common-util": "^3.73.0-beta.0",
|
|
56
|
+
"@eggjs/tegg-loader": "^3.73.0-beta.0",
|
|
57
|
+
"@eggjs/tegg-metadata": "^3.73.0-beta.0",
|
|
58
|
+
"@eggjs/tegg-runtime": "^3.73.0-beta.0",
|
|
58
59
|
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
59
60
|
"await-event": "^2.1.0",
|
|
60
61
|
"content-type": "^1.0.5",
|
|
@@ -67,9 +68,9 @@
|
|
|
67
68
|
"zod": "^4.0.0"
|
|
68
69
|
},
|
|
69
70
|
"devDependencies": {
|
|
70
|
-
"@eggjs/module-test-util": "^3.
|
|
71
|
-
"@eggjs/tegg-config": "^3.
|
|
72
|
-
"@eggjs/tegg-plugin": "^3.
|
|
71
|
+
"@eggjs/module-test-util": "^3.73.0-beta.0",
|
|
72
|
+
"@eggjs/tegg-config": "^3.73.0-beta.0",
|
|
73
|
+
"@eggjs/tegg-plugin": "^3.73.0-beta.0",
|
|
73
74
|
"@types/mocha": "^10.0.1",
|
|
74
75
|
"@types/node": "^20.2.4",
|
|
75
76
|
"cross-env": "^7.0.3",
|
|
@@ -83,5 +84,5 @@
|
|
|
83
84
|
"publishConfig": {
|
|
84
85
|
"access": "public"
|
|
85
86
|
},
|
|
86
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "419d966f3efc649e533f165ba5d15994d7076722"
|
|
87
88
|
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2017-present Alibaba Group Holding Limited and other contributors.
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|