@eggjs/agent-runtime 0.0.0 → 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/dist/index.d.ts +10 -0
- package/dist/index.js +31 -0
- package/dist/src/AgentRuntime.d.ts +42 -0
- package/dist/src/AgentRuntime.js +376 -0
- package/dist/src/AgentStore.d.ts +42 -0
- package/dist/src/AgentStore.js +3 -0
- package/dist/src/AgentStoreUtils.d.ts +4 -0
- package/dist/src/AgentStoreUtils.js +23 -0
- package/dist/src/FileAgentStore.d.ts +21 -0
- package/dist/src/FileAgentStore.js +104 -0
- package/dist/src/HttpSSEWriter.d.ts +16 -0
- package/dist/src/HttpSSEWriter.js +51 -0
- package/dist/src/MessageConverter.d.ts +32 -0
- package/dist/src/MessageConverter.js +108 -0
- package/dist/src/OSSAgentStore.d.ts +62 -0
- package/dist/src/OSSAgentStore.js +165 -0
- package/dist/src/OSSObjectStorageClient.d.ts +46 -0
- package/dist/src/OSSObjectStorageClient.js +90 -0
- package/dist/src/RunBuilder.d.ts +43 -0
- package/dist/src/RunBuilder.js +127 -0
- package/dist/src/SSEWriter.d.ts +14 -0
- package/dist/src/SSEWriter.js +3 -0
- package/dist/src/agentDefaults.d.ts +1 -0
- package/dist/src/agentDefaults.js +447 -0
- package/dist/src/enhanceAgentController.d.ts +2 -0
- package/dist/src/enhanceAgentController.js +90 -0
- package/package.json +32 -13
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AGENT_DEFAULT_FACTORIES = void 0;
|
|
7
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
8
|
+
const tegg_runtime_1 = require("@eggjs/tegg-runtime");
|
|
9
|
+
function nowUnix() {
|
|
10
|
+
return Math.floor(Date.now() / 1000);
|
|
11
|
+
}
|
|
12
|
+
function newMsgId() {
|
|
13
|
+
return `msg_${node_crypto_1.default.randomUUID()}`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Convert an AgentStreamMessage's message field into OpenAI MessageContentBlock[].
|
|
17
|
+
*/
|
|
18
|
+
function toContentBlocks(msg) {
|
|
19
|
+
if (!msg)
|
|
20
|
+
return [];
|
|
21
|
+
const content = msg.content;
|
|
22
|
+
if (typeof content === 'string') {
|
|
23
|
+
return [{ type: 'text', text: { value: content, annotations: [] } }];
|
|
24
|
+
}
|
|
25
|
+
if (Array.isArray(content)) {
|
|
26
|
+
return content
|
|
27
|
+
.filter(part => part.type === 'text')
|
|
28
|
+
.map(part => ({ type: 'text', text: { value: part.text, annotations: [] } }));
|
|
29
|
+
}
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build a completed MessageObject from an AgentStreamMessage.
|
|
34
|
+
*/
|
|
35
|
+
function toMessageObject(msg, runId) {
|
|
36
|
+
return {
|
|
37
|
+
id: newMsgId(),
|
|
38
|
+
object: 'thread.message',
|
|
39
|
+
created_at: nowUnix(),
|
|
40
|
+
run_id: runId,
|
|
41
|
+
role: 'assistant',
|
|
42
|
+
status: 'completed',
|
|
43
|
+
content: toContentBlocks(msg),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Extract MessageObjects and accumulated usage from AgentStreamMessage objects.
|
|
48
|
+
*/
|
|
49
|
+
function extractFromStreamMessages(messages, runId) {
|
|
50
|
+
var _a, _b, _c;
|
|
51
|
+
const output = [];
|
|
52
|
+
let promptTokens = 0;
|
|
53
|
+
let completionTokens = 0;
|
|
54
|
+
let totalTokens = 0;
|
|
55
|
+
let hasUsage = false;
|
|
56
|
+
for (const msg of messages) {
|
|
57
|
+
if (msg.message) {
|
|
58
|
+
output.push(toMessageObject(msg.message, runId));
|
|
59
|
+
}
|
|
60
|
+
if (msg.usage) {
|
|
61
|
+
hasUsage = true;
|
|
62
|
+
promptTokens += (_a = msg.usage.prompt_tokens) !== null && _a !== void 0 ? _a : 0;
|
|
63
|
+
completionTokens += (_b = msg.usage.completion_tokens) !== null && _b !== void 0 ? _b : 0;
|
|
64
|
+
totalTokens += (_c = msg.usage.total_tokens) !== null && _c !== void 0 ? _c : 0;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
let usage;
|
|
68
|
+
if (hasUsage) {
|
|
69
|
+
usage = {
|
|
70
|
+
prompt_tokens: promptTokens,
|
|
71
|
+
completion_tokens: completionTokens,
|
|
72
|
+
total_tokens: Math.max(promptTokens + completionTokens, totalTokens),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return { output, usage };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Convert input messages to MessageObjects for thread history.
|
|
79
|
+
* System messages are filtered out — they are transient instructions, not conversation history.
|
|
80
|
+
*/
|
|
81
|
+
function toInputMessageObjects(messages, threadId) {
|
|
82
|
+
return messages
|
|
83
|
+
.filter(m => m.role !== 'system')
|
|
84
|
+
.map(m => ({
|
|
85
|
+
id: newMsgId(),
|
|
86
|
+
object: 'thread.message',
|
|
87
|
+
created_at: nowUnix(),
|
|
88
|
+
thread_id: threadId,
|
|
89
|
+
role: m.role,
|
|
90
|
+
status: 'completed',
|
|
91
|
+
content: typeof m.content === 'string'
|
|
92
|
+
? [{ type: 'text', text: { value: m.content, annotations: [] } }]
|
|
93
|
+
: m.content.map(p => ({ type: 'text', text: { value: p.text, annotations: [] } })),
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
function defaultCreateThread() {
|
|
97
|
+
return async function () {
|
|
98
|
+
var _a;
|
|
99
|
+
const thread = await this.__agentStore.createThread();
|
|
100
|
+
return {
|
|
101
|
+
id: thread.id,
|
|
102
|
+
object: 'thread',
|
|
103
|
+
created_at: thread.created_at,
|
|
104
|
+
metadata: (_a = thread.metadata) !== null && _a !== void 0 ? _a : {},
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function defaultGetThread() {
|
|
109
|
+
return async function (threadId) {
|
|
110
|
+
var _a;
|
|
111
|
+
const thread = await this.__agentStore.getThread(threadId);
|
|
112
|
+
return {
|
|
113
|
+
id: thread.id,
|
|
114
|
+
object: 'thread',
|
|
115
|
+
created_at: thread.created_at,
|
|
116
|
+
metadata: (_a = thread.metadata) !== null && _a !== void 0 ? _a : {},
|
|
117
|
+
messages: thread.messages,
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function defaultSyncRun() {
|
|
122
|
+
return async function (input) {
|
|
123
|
+
let threadId = input.thread_id;
|
|
124
|
+
if (!threadId) {
|
|
125
|
+
const thread = await this.__agentStore.createThread();
|
|
126
|
+
threadId = thread.id;
|
|
127
|
+
input = { ...input, thread_id: threadId };
|
|
128
|
+
}
|
|
129
|
+
const run = await this.__agentStore.createRun(input.input.messages, threadId, input.config, input.metadata);
|
|
130
|
+
try {
|
|
131
|
+
const startedAt = nowUnix();
|
|
132
|
+
await this.__agentStore.updateRun(run.id, { status: 'in_progress', started_at: startedAt });
|
|
133
|
+
const streamMessages = [];
|
|
134
|
+
for await (const msg of this.execRun(input)) {
|
|
135
|
+
streamMessages.push(msg);
|
|
136
|
+
}
|
|
137
|
+
const { output, usage } = extractFromStreamMessages(streamMessages, run.id);
|
|
138
|
+
const completedAt = nowUnix();
|
|
139
|
+
await this.__agentStore.updateRun(run.id, {
|
|
140
|
+
status: 'completed',
|
|
141
|
+
output,
|
|
142
|
+
usage,
|
|
143
|
+
completed_at: completedAt,
|
|
144
|
+
});
|
|
145
|
+
await this.__agentStore.appendMessages(threadId, [
|
|
146
|
+
...toInputMessageObjects(input.input.messages, threadId),
|
|
147
|
+
...output,
|
|
148
|
+
]);
|
|
149
|
+
return {
|
|
150
|
+
id: run.id,
|
|
151
|
+
object: 'thread.run',
|
|
152
|
+
created_at: run.created_at,
|
|
153
|
+
thread_id: threadId,
|
|
154
|
+
status: 'completed',
|
|
155
|
+
started_at: startedAt,
|
|
156
|
+
completed_at: completedAt,
|
|
157
|
+
output,
|
|
158
|
+
usage,
|
|
159
|
+
metadata: run.metadata,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
const failedAt = nowUnix();
|
|
164
|
+
await this.__agentStore.updateRun(run.id, {
|
|
165
|
+
status: 'failed',
|
|
166
|
+
last_error: { code: 'EXEC_ERROR', message: err.message },
|
|
167
|
+
failed_at: failedAt,
|
|
168
|
+
});
|
|
169
|
+
throw err;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
function defaultAsyncRun() {
|
|
174
|
+
return async function (input) {
|
|
175
|
+
let threadId = input.thread_id;
|
|
176
|
+
if (!threadId) {
|
|
177
|
+
const thread = await this.__agentStore.createThread();
|
|
178
|
+
threadId = thread.id;
|
|
179
|
+
input = { ...input, thread_id: threadId };
|
|
180
|
+
}
|
|
181
|
+
const run = await this.__agentStore.createRun(input.input.messages, threadId, input.config, input.metadata);
|
|
182
|
+
const abortController = new AbortController();
|
|
183
|
+
const promise = (async () => {
|
|
184
|
+
try {
|
|
185
|
+
await this.__agentStore.updateRun(run.id, { status: 'in_progress', started_at: nowUnix() });
|
|
186
|
+
const streamMessages = [];
|
|
187
|
+
for await (const msg of this.execRun(input, abortController.signal)) {
|
|
188
|
+
if (abortController.signal.aborted)
|
|
189
|
+
break;
|
|
190
|
+
streamMessages.push(msg);
|
|
191
|
+
}
|
|
192
|
+
if (abortController.signal.aborted)
|
|
193
|
+
return;
|
|
194
|
+
const { output, usage } = extractFromStreamMessages(streamMessages, run.id);
|
|
195
|
+
await this.__agentStore.updateRun(run.id, {
|
|
196
|
+
status: 'completed',
|
|
197
|
+
output,
|
|
198
|
+
usage,
|
|
199
|
+
completed_at: nowUnix(),
|
|
200
|
+
});
|
|
201
|
+
await this.__agentStore.appendMessages(threadId, [
|
|
202
|
+
...toInputMessageObjects(input.input.messages, threadId),
|
|
203
|
+
...output,
|
|
204
|
+
]);
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
if (!abortController.signal.aborted) {
|
|
208
|
+
try {
|
|
209
|
+
await this.__agentStore.updateRun(run.id, {
|
|
210
|
+
status: 'failed',
|
|
211
|
+
last_error: { code: 'EXEC_ERROR', message: err.message },
|
|
212
|
+
failed_at: nowUnix(),
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Ignore store update failure to avoid swallowing the original error
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
finally {
|
|
221
|
+
this.__runningTasks.delete(run.id);
|
|
222
|
+
}
|
|
223
|
+
})();
|
|
224
|
+
this.__runningTasks.set(run.id, { promise, abortController });
|
|
225
|
+
return {
|
|
226
|
+
id: run.id,
|
|
227
|
+
object: 'thread.run',
|
|
228
|
+
created_at: run.created_at,
|
|
229
|
+
thread_id: threadId,
|
|
230
|
+
status: 'queued',
|
|
231
|
+
metadata: run.metadata,
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
function defaultStreamRun() {
|
|
236
|
+
return async function (input) {
|
|
237
|
+
var _a, _b, _c;
|
|
238
|
+
const runtimeCtx = tegg_runtime_1.ContextHandler.getContext();
|
|
239
|
+
if (!runtimeCtx) {
|
|
240
|
+
throw new Error('streamRun must be called within a request context');
|
|
241
|
+
}
|
|
242
|
+
const ctx = runtimeCtx.get(Symbol.for('context#eggContext'));
|
|
243
|
+
// Bypass Koa response handling — write SSE directly to the raw response
|
|
244
|
+
ctx.respond = false;
|
|
245
|
+
const res = ctx.res;
|
|
246
|
+
res.writeHead(200, {
|
|
247
|
+
'Content-Type': 'text/event-stream',
|
|
248
|
+
'Cache-Control': 'no-cache',
|
|
249
|
+
Connection: 'keep-alive',
|
|
250
|
+
});
|
|
251
|
+
// Abort execRun generator when client disconnects
|
|
252
|
+
const abortController = new AbortController();
|
|
253
|
+
res.on('close', () => abortController.abort());
|
|
254
|
+
let threadId = input.thread_id;
|
|
255
|
+
if (!threadId) {
|
|
256
|
+
const thread = await this.__agentStore.createThread();
|
|
257
|
+
threadId = thread.id;
|
|
258
|
+
input = { ...input, thread_id: threadId };
|
|
259
|
+
}
|
|
260
|
+
const run = await this.__agentStore.createRun(input.input.messages, threadId, input.config, input.metadata);
|
|
261
|
+
const runObj = {
|
|
262
|
+
id: run.id,
|
|
263
|
+
object: 'thread.run',
|
|
264
|
+
created_at: run.created_at,
|
|
265
|
+
thread_id: threadId,
|
|
266
|
+
status: 'queued',
|
|
267
|
+
metadata: run.metadata,
|
|
268
|
+
};
|
|
269
|
+
// event: thread.run.created
|
|
270
|
+
res.write(`event: thread.run.created\ndata: ${JSON.stringify(runObj)}\n\n`);
|
|
271
|
+
// event: thread.run.in_progress
|
|
272
|
+
runObj.status = 'in_progress';
|
|
273
|
+
runObj.started_at = nowUnix();
|
|
274
|
+
await this.__agentStore.updateRun(run.id, { status: 'in_progress', started_at: runObj.started_at });
|
|
275
|
+
res.write(`event: thread.run.in_progress\ndata: ${JSON.stringify(runObj)}\n\n`);
|
|
276
|
+
const msgId = newMsgId();
|
|
277
|
+
const accumulatedContent = [];
|
|
278
|
+
// event: thread.message.created
|
|
279
|
+
const msgObj = {
|
|
280
|
+
id: msgId,
|
|
281
|
+
object: 'thread.message',
|
|
282
|
+
created_at: nowUnix(),
|
|
283
|
+
run_id: run.id,
|
|
284
|
+
role: 'assistant',
|
|
285
|
+
status: 'in_progress',
|
|
286
|
+
content: [],
|
|
287
|
+
};
|
|
288
|
+
res.write(`event: thread.message.created\ndata: ${JSON.stringify(msgObj)}\n\n`);
|
|
289
|
+
let promptTokens = 0;
|
|
290
|
+
let completionTokens = 0;
|
|
291
|
+
let totalTokens = 0;
|
|
292
|
+
let hasUsage = false;
|
|
293
|
+
try {
|
|
294
|
+
for await (const msg of this.execRun(input, abortController.signal)) {
|
|
295
|
+
if (abortController.signal.aborted)
|
|
296
|
+
break;
|
|
297
|
+
if (msg.message) {
|
|
298
|
+
const contentBlocks = toContentBlocks(msg.message);
|
|
299
|
+
accumulatedContent.push(...contentBlocks);
|
|
300
|
+
// event: thread.message.delta
|
|
301
|
+
const delta = {
|
|
302
|
+
id: msgId,
|
|
303
|
+
object: 'thread.message.delta',
|
|
304
|
+
delta: { content: contentBlocks },
|
|
305
|
+
};
|
|
306
|
+
res.write(`event: thread.message.delta\ndata: ${JSON.stringify(delta)}\n\n`);
|
|
307
|
+
}
|
|
308
|
+
if (msg.usage) {
|
|
309
|
+
hasUsage = true;
|
|
310
|
+
promptTokens += (_a = msg.usage.prompt_tokens) !== null && _a !== void 0 ? _a : 0;
|
|
311
|
+
completionTokens += (_b = msg.usage.completion_tokens) !== null && _b !== void 0 ? _b : 0;
|
|
312
|
+
totalTokens += (_c = msg.usage.total_tokens) !== null && _c !== void 0 ? _c : 0;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
// If client disconnected / abort signaled, emit cancelled and return
|
|
316
|
+
if (abortController.signal.aborted) {
|
|
317
|
+
const cancelledAt = nowUnix();
|
|
318
|
+
try {
|
|
319
|
+
await this.__agentStore.updateRun(run.id, { status: 'cancelled', cancelled_at: cancelledAt });
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
// Ignore store update failure during abort
|
|
323
|
+
}
|
|
324
|
+
runObj.status = 'cancelled';
|
|
325
|
+
runObj.cancelled_at = cancelledAt;
|
|
326
|
+
res.write(`event: thread.run.cancelled\ndata: ${JSON.stringify(runObj)}\n\n`);
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
// event: thread.message.completed
|
|
330
|
+
msgObj.status = 'completed';
|
|
331
|
+
msgObj.content = accumulatedContent;
|
|
332
|
+
res.write(`event: thread.message.completed\ndata: ${JSON.stringify(msgObj)}\n\n`);
|
|
333
|
+
// Build final output
|
|
334
|
+
const output = accumulatedContent.length > 0 ? [msgObj] : [];
|
|
335
|
+
let usage;
|
|
336
|
+
if (hasUsage) {
|
|
337
|
+
usage = {
|
|
338
|
+
prompt_tokens: promptTokens,
|
|
339
|
+
completion_tokens: completionTokens,
|
|
340
|
+
total_tokens: Math.max(promptTokens + completionTokens, totalTokens),
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
const completedAt = nowUnix();
|
|
344
|
+
await this.__agentStore.updateRun(run.id, {
|
|
345
|
+
status: 'completed',
|
|
346
|
+
output,
|
|
347
|
+
usage,
|
|
348
|
+
completed_at: completedAt,
|
|
349
|
+
});
|
|
350
|
+
await this.__agentStore.appendMessages(threadId, [
|
|
351
|
+
...toInputMessageObjects(input.input.messages, threadId),
|
|
352
|
+
...output,
|
|
353
|
+
]);
|
|
354
|
+
// event: thread.run.completed
|
|
355
|
+
runObj.status = 'completed';
|
|
356
|
+
runObj.completed_at = completedAt;
|
|
357
|
+
runObj.usage = usage;
|
|
358
|
+
runObj.output = output;
|
|
359
|
+
res.write(`event: thread.run.completed\ndata: ${JSON.stringify(runObj)}\n\n`);
|
|
360
|
+
}
|
|
361
|
+
catch (err) {
|
|
362
|
+
const failedAt = nowUnix();
|
|
363
|
+
try {
|
|
364
|
+
await this.__agentStore.updateRun(run.id, {
|
|
365
|
+
status: 'failed',
|
|
366
|
+
last_error: { code: 'EXEC_ERROR', message: err.message },
|
|
367
|
+
failed_at: failedAt,
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
catch {
|
|
371
|
+
// Ignore store update failure to avoid swallowing the original error
|
|
372
|
+
}
|
|
373
|
+
// event: thread.run.failed
|
|
374
|
+
runObj.status = 'failed';
|
|
375
|
+
runObj.failed_at = failedAt;
|
|
376
|
+
runObj.last_error = { code: 'EXEC_ERROR', message: err.message };
|
|
377
|
+
res.write(`event: thread.run.failed\ndata: ${JSON.stringify(runObj)}\n\n`);
|
|
378
|
+
}
|
|
379
|
+
finally {
|
|
380
|
+
// event: done
|
|
381
|
+
res.write('event: done\ndata: [DONE]\n\n');
|
|
382
|
+
res.end();
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
function defaultGetRun() {
|
|
387
|
+
return async function (runId) {
|
|
388
|
+
const run = await this.__agentStore.getRun(runId);
|
|
389
|
+
return {
|
|
390
|
+
id: run.id,
|
|
391
|
+
object: 'thread.run',
|
|
392
|
+
created_at: run.created_at,
|
|
393
|
+
thread_id: run.thread_id,
|
|
394
|
+
status: run.status,
|
|
395
|
+
last_error: run.last_error,
|
|
396
|
+
started_at: run.started_at,
|
|
397
|
+
completed_at: run.completed_at,
|
|
398
|
+
cancelled_at: run.cancelled_at,
|
|
399
|
+
failed_at: run.failed_at,
|
|
400
|
+
usage: run.usage,
|
|
401
|
+
output: run.output,
|
|
402
|
+
config: run.config,
|
|
403
|
+
metadata: run.metadata,
|
|
404
|
+
};
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
const TERMINAL_RUN_STATUSES = new Set(['completed', 'failed', 'cancelled', 'expired']);
|
|
408
|
+
function defaultCancelRun() {
|
|
409
|
+
return async function (runId) {
|
|
410
|
+
// Abort running task first to prevent it from writing completed status
|
|
411
|
+
const task = this.__runningTasks.get(runId);
|
|
412
|
+
if (task) {
|
|
413
|
+
task.abortController.abort();
|
|
414
|
+
// Wait for the background task to finish so it won't race with our update
|
|
415
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
416
|
+
await task.promise.catch(() => { });
|
|
417
|
+
}
|
|
418
|
+
// Re-read run status after background task has settled
|
|
419
|
+
const run = await this.__agentStore.getRun(runId);
|
|
420
|
+
if (TERMINAL_RUN_STATUSES.has(run.status)) {
|
|
421
|
+
throw new Error(`Cannot cancel run with status '${run.status}'`);
|
|
422
|
+
}
|
|
423
|
+
const cancelledAt = nowUnix();
|
|
424
|
+
await this.__agentStore.updateRun(runId, {
|
|
425
|
+
status: 'cancelled',
|
|
426
|
+
cancelled_at: cancelledAt,
|
|
427
|
+
});
|
|
428
|
+
return {
|
|
429
|
+
id: run.id,
|
|
430
|
+
object: 'thread.run',
|
|
431
|
+
created_at: run.created_at,
|
|
432
|
+
thread_id: run.thread_id,
|
|
433
|
+
status: 'cancelled',
|
|
434
|
+
cancelled_at: cancelledAt,
|
|
435
|
+
};
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
exports.AGENT_DEFAULT_FACTORIES = {
|
|
439
|
+
createThread: defaultCreateThread,
|
|
440
|
+
getThread: defaultGetThread,
|
|
441
|
+
syncRun: defaultSyncRun,
|
|
442
|
+
asyncRun: defaultAsyncRun,
|
|
443
|
+
streamRun: defaultStreamRun,
|
|
444
|
+
getRun: defaultGetRun,
|
|
445
|
+
cancelRun: defaultCancelRun,
|
|
446
|
+
};
|
|
447
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnREZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZ2VudERlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFpQztBQUNqQyxzREFBcUQ7QUFtQnJELFNBQVMsT0FBTztJQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsUUFBUTtJQUNmLE9BQU8sT0FBTyxxQkFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxlQUFlLENBQUMsR0FBa0M7SUFDekQsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQzVCLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sT0FBTzthQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO2FBQ3BDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBZSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxHQUFrQyxFQUFFLEtBQWM7SUFDekUsT0FBTztRQUNMLEVBQUUsRUFBRSxRQUFRLEVBQUU7UUFDZCxNQUFNLEVBQUUsZ0JBQWdCO1FBQ3hCLFVBQVUsRUFBRSxPQUFPLEVBQUU7UUFDckIsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsV0FBVztRQUNqQixNQUFNLEVBQUUsV0FBVztRQUNuQixPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FBQyxRQUE4QixFQUFFLEtBQWM7O0lBSS9FLE1BQU0sTUFBTSxHQUFvQixFQUFFLENBQUM7SUFDbkMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNwQixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFckIsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNoQixZQUFZLElBQUksTUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsbUNBQUksQ0FBQyxDQUFDO1lBQzdDLGdCQUFnQixJQUFJLE1BQUEsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsbUNBQUksQ0FBQyxDQUFDO1lBQ3JELFdBQVcsSUFBSSxNQUFBLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxtQ0FBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLEtBQTZGLENBQUM7SUFDbEcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLEtBQUssR0FBRztZQUNOLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGlCQUFpQixFQUFFLGdCQUFnQjtZQUNuQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO1NBQ3JFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUMzQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FBQyxRQUE2QyxFQUFFLFFBQWlCO0lBQzdGLE9BQU8sUUFBUTtTQUNaLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO1NBQ2hDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDVCxFQUFFLEVBQUUsUUFBUSxFQUFFO1FBQ2QsTUFBTSxFQUFFLGdCQUF5QjtRQUNqQyxVQUFVLEVBQUUsT0FBTyxFQUFFO1FBQ3JCLFNBQVMsRUFBRSxRQUFRO1FBQ25CLElBQUksRUFBRSxDQUFDLENBQUMsSUFBNEI7UUFDcEMsTUFBTSxFQUFFLFdBQW9CO1FBQzVCLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssUUFBUTtZQUNwQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDMUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5RixDQUFDLENBQUMsQ0FBQztBQUNSLENBQUM7QUFFRCxTQUFTLG1CQUFtQjtJQUMxQixPQUFPLEtBQUs7O1FBQ1YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RELE9BQU87WUFDTCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDN0IsUUFBUSxFQUFFLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksRUFBRTtTQUNoQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE9BQU8sS0FBSyxXQUErQixRQUFnQjs7UUFDekQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxPQUFPO1lBQ0wsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsTUFBTSxFQUFFLFFBQVE7WUFDaEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLFFBQVEsRUFBRSxNQUFBLE1BQU0sQ0FBQyxRQUFRLG1DQUFJLEVBQUU7WUFDL0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1NBQzFCLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxjQUFjO0lBQ3JCLE9BQU8sS0FBSyxXQUErQixLQUFxQjtRQUM5RCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0RCxRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyQixLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDNUMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUNwQixRQUFRLEVBQ1IsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsUUFBUSxDQUNmLENBQUM7UUFFRixJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBRTVGLE1BQU0sY0FBYyxHQUF5QixFQUFFLENBQUM7WUFDaEQsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLHlCQUF5QixDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFNUUsTUFBTSxXQUFXLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxNQUFNLEVBQUUsV0FBVztnQkFDbkIsTUFBTTtnQkFDTixLQUFLO2dCQUNMLFlBQVksRUFBRSxXQUFXO2FBQzFCLENBQUMsQ0FBQztZQUVILE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFO2dCQUMvQyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztnQkFDeEQsR0FBRyxNQUFNO2FBQ1YsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFLFlBQVk7Z0JBQ3BCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtnQkFDMUIsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixVQUFVLEVBQUUsU0FBUztnQkFDckIsWUFBWSxFQUFFLFdBQVc7Z0JBQ3pCLE1BQU07Z0JBQ04sS0FBSztnQkFDTCxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7YUFDdkIsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRTtnQkFDeEMsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3hELFNBQVMsRUFBRSxRQUFRO2FBQ3BCLENBQUMsQ0FBQztZQUNILE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGVBQWU7SUFDdEIsT0FBTyxLQUFLLFdBQStCLEtBQXFCO1FBQzlELElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RELFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JCLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDM0MsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQ3BCLFFBQVEsRUFDUixLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxRQUFRLENBQ2YsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFFOUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUU1RixNQUFNLGNBQWMsR0FBeUIsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDcEUsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU87d0JBQUUsTUFBTTtvQkFDMUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztnQkFFRCxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTztvQkFBRSxPQUFPO2dCQUUzQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLHlCQUF5QixDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRTVFLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRTtvQkFDeEMsTUFBTSxFQUFFLFdBQVc7b0JBQ25CLE1BQU07b0JBQ04sS0FBSztvQkFDTCxZQUFZLEVBQUUsT0FBTyxFQUFFO2lCQUN4QixDQUFDLENBQUM7Z0JBRUgsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxRQUFTLEVBQUU7b0JBQ2hELEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO29CQUN4RCxHQUFHLE1BQU07aUJBQ1YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUM7d0JBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFOzRCQUN4QyxNQUFNLEVBQUUsUUFBUTs0QkFDaEIsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRTs0QkFDeEQsU0FBUyxFQUFFLE9BQU8sRUFBRTt5QkFDckIsQ0FBQyxDQUFDO29CQUNMLENBQUM7b0JBQUMsTUFBTSxDQUFDO3dCQUNQLHFFQUFxRTtvQkFDdkUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztvQkFBUyxDQUFDO2dCQUNULElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVMLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUU5RCxPQUFPO1lBQ0wsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ1YsTUFBTSxFQUFFLFlBQVk7WUFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQzFCLFNBQVMsRUFBRSxRQUFRO1lBQ25CLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtTQUN2QixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE9BQU8sS0FBSyxXQUErQixLQUFxQjs7UUFDOUQsTUFBTSxVQUFVLEdBQUcsNkJBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBRTdELHdFQUF3RTtRQUN4RSxHQUFHLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pCLGNBQWMsRUFBRSxtQkFBbUI7WUFDbkMsZUFBZSxFQUFFLFVBQVU7WUFDM0IsVUFBVSxFQUFFLFlBQVk7U0FDekIsQ0FBQyxDQUFDO1FBRUgsa0RBQWtEO1FBQ2xELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFL0MsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEQsUUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDckIsS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzVDLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUMzQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFDcEIsUUFBUSxFQUNSLEtBQUssQ0FBQyxNQUFNLEVBQ1osS0FBSyxDQUFDLFFBQVEsQ0FDZixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQWM7WUFDeEIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ1YsTUFBTSxFQUFFLFlBQVk7WUFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQzFCLFNBQVMsRUFBRSxRQUFRO1lBQ25CLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtTQUN2QixDQUFDO1FBRUYsNEJBQTRCO1FBQzVCLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0NBQW9DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVFLGdDQUFnQztRQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUM5QixNQUFNLENBQUMsVUFBVSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLEdBQUcsQ0FBQyxLQUFLLENBQUMsd0NBQXdDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWhGLE1BQU0sS0FBSyxHQUFHLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sa0JBQWtCLEdBQTZCLEVBQUUsQ0FBQztRQUV4RCxnQ0FBZ0M7UUFDaEMsTUFBTSxNQUFNLEdBQWtCO1lBQzVCLEVBQUUsRUFBRSxLQUFLO1lBQ1QsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixVQUFVLEVBQUUsT0FBTyxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNkLElBQUksRUFBRSxXQUFXO1lBQ2pCLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsd0NBQXdDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWhGLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksQ0FBQztZQUNILElBQUksS0FBSyxFQUFFLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTztvQkFBRSxNQUFNO2dCQUMxQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbkQsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7b0JBRTFDLDhCQUE4QjtvQkFDOUIsTUFBTSxLQUFLLEdBQXVCO3dCQUNoQyxFQUFFLEVBQUUsS0FBSzt3QkFDVCxNQUFNLEVBQUUsc0JBQXNCO3dCQUM5QixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFO3FCQUNsQyxDQUFDO29CQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsc0NBQXNDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRSxDQUFDO2dCQUNELElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNkLFFBQVEsR0FBRyxJQUFJLENBQUM7b0JBQ2hCLFlBQVksSUFBSSxNQUFBLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxtQ0FBSSxDQUFDLENBQUM7b0JBQzdDLGdCQUFnQixJQUFJLE1BQUEsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsbUNBQUksQ0FBQyxDQUFDO29CQUNyRCxXQUFXLElBQUksTUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksbUNBQUksQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQztZQUVELHFFQUFxRTtZQUNyRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUM7b0JBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDaEcsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsMkNBQTJDO2dCQUM3QyxDQUFDO2dCQUNELE1BQU0sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO2dCQUM1QixNQUFNLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztnQkFDbEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlFLE9BQU87WUFDVCxDQUFDO1lBRUQsa0NBQWtDO1lBQ2xDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUM7WUFDcEMsR0FBRyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFbEYscUJBQXFCO1lBQ3JCLE1BQU0sTUFBTSxHQUFvQixrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLE1BQU0sQ0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEYsSUFBSSxLQUF5QixDQUFDO1lBQzlCLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxHQUFHO29CQUNOLGFBQWEsRUFBRSxZQUFZO29CQUMzQixpQkFBaUIsRUFBRSxnQkFBZ0I7b0JBQ25DLFlBQVksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7aUJBQ3JFLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxNQUFNLEVBQUUsV0FBVztnQkFDbkIsTUFBTTtnQkFDTixLQUFLO2dCQUNMLFlBQVksRUFBRSxXQUFXO2FBQzFCLENBQUMsQ0FBQztZQUVILE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsUUFBUyxFQUFFO2dCQUNoRCxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztnQkFDeEQsR0FBRyxNQUFNO2FBQ1YsQ0FBQyxDQUFDO1lBRUgsOEJBQThCO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxLQUFLLENBQUMsc0NBQXNDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7b0JBQ3hDLE1BQU0sRUFBRSxRQUFRO29CQUNoQixVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFO29CQUN4RCxTQUFTLEVBQUUsUUFBUTtpQkFDcEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxxRUFBcUU7WUFDdkUsQ0FBQztZQUVELDJCQUEyQjtZQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN6QixNQUFNLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUM1QixNQUFNLENBQUMsVUFBVSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pFLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUNBQW1DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdFLENBQUM7Z0JBQVMsQ0FBQztZQUNULGNBQWM7WUFDZCxHQUFHLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDM0MsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWE7SUFDcEIsT0FBTyxLQUFLLFdBQStCLEtBQWE7UUFDdEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxPQUFPO1lBQ0wsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ1YsTUFBTSxFQUFFLFlBQVk7WUFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQzFCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztZQUN4QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07WUFDbEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQzFCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtZQUMxQixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVk7WUFDOUIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO1lBQzlCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztZQUN4QixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1lBQ2xCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtZQUNsQixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7U0FDdkIsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFFLENBQUMsQ0FBQztBQUV6RixTQUFTLGdCQUFnQjtJQUN2QixPQUFPLEtBQUssV0FBK0IsS0FBYTtRQUN0RCx1RUFBdUU7UUFDdkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsMEVBQTBFO1lBQzFFLGdFQUFnRTtZQUNoRSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFnQixDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsdURBQXVEO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxXQUFXO1lBQ25CLFlBQVksRUFBRSxXQUFXO1NBQzFCLENBQUMsQ0FBQztRQUVILE9BQU87WUFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDVixNQUFNLEVBQUUsWUFBWTtZQUNwQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1lBQ3hCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLFlBQVksRUFBRSxXQUFXO1NBQzFCLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSx1QkFBdUIsR0FBbUM7SUFDckUsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsTUFBTSxFQUFFLGFBQWE7SUFDckIsU0FBUyxFQUFFLGdCQUFnQjtDQUM1QixDQUFDIn0=
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.enhanceAgentController = enhanceAgentController;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const FileAgentStore_1 = require("./FileAgentStore");
|
|
9
|
+
const agentDefaults_1 = require("./agentDefaults");
|
|
10
|
+
const AGENT_METHOD_NAMES = [
|
|
11
|
+
'createThread', 'getThread', 'asyncRun', 'streamRun', 'syncRun', 'getRun', 'cancelRun',
|
|
12
|
+
];
|
|
13
|
+
const NOT_IMPLEMENTED = Symbol.for('AGENT_NOT_IMPLEMENTED');
|
|
14
|
+
const AGENT_ENHANCED = Symbol.for('AGENT_CONTROLLER_ENHANCED');
|
|
15
|
+
// Enhance an AgentController class with smart default implementations.
|
|
16
|
+
//
|
|
17
|
+
// Called by the plugin/controller lifecycle hook AFTER the decorator has set
|
|
18
|
+
// HTTP metadata and injected stub methods. Detects which methods are
|
|
19
|
+
// user-defined vs stubs (via Symbol.for('AGENT_NOT_IMPLEMENTED') marker)
|
|
20
|
+
// and replaces stubs with store-backed default implementations.
|
|
21
|
+
// Also wraps init()/destroy() to manage the AgentStore lifecycle.
|
|
22
|
+
//
|
|
23
|
+
// Prerequisites:
|
|
24
|
+
// - The class must be marked with Symbol.for('AGENT_CONTROLLER') (otherwise this is a no-op).
|
|
25
|
+
// - Stub methods must be marked with Symbol.for('AGENT_NOT_IMPLEMENTED').
|
|
26
|
+
function enhanceAgentController(clazz) {
|
|
27
|
+
// Only enhance classes marked by @AgentController decorator
|
|
28
|
+
if (!clazz[Symbol.for('AGENT_CONTROLLER')]) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Guard against repeated enhancement (e.g., multiple lifecycle hook calls)
|
|
32
|
+
if (clazz[AGENT_ENHANCED]) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Identify which methods are stubs vs user-defined
|
|
36
|
+
const stubMethods = new Set();
|
|
37
|
+
for (const name of AGENT_METHOD_NAMES) {
|
|
38
|
+
const method = clazz.prototype[name];
|
|
39
|
+
if (!method || method[NOT_IMPLEMENTED]) {
|
|
40
|
+
stubMethods.add(name);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Wrap init() lifecycle to create store and task tracking
|
|
44
|
+
const originalInit = clazz.prototype.init;
|
|
45
|
+
clazz.prototype.init = async function () {
|
|
46
|
+
// Allow user to provide custom store via createStore()
|
|
47
|
+
if (typeof this.createStore === 'function') {
|
|
48
|
+
this.__agentStore = await this.createStore();
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const dataDir = process.env.TEGG_AGENT_DATA_DIR || node_path_1.default.join(process.cwd(), '.agent-data');
|
|
52
|
+
this.__agentStore = new FileAgentStore_1.FileAgentStore({ dataDir });
|
|
53
|
+
}
|
|
54
|
+
if (this.__agentStore.init) {
|
|
55
|
+
await this.__agentStore.init();
|
|
56
|
+
}
|
|
57
|
+
this.__runningTasks = new Map();
|
|
58
|
+
if (originalInit) {
|
|
59
|
+
await originalInit.call(this);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
// Wrap destroy() lifecycle to wait for in-flight tasks and cleanup
|
|
63
|
+
const originalDestroy = clazz.prototype.destroy;
|
|
64
|
+
clazz.prototype.destroy = async function () {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
// Wait for in-flight background tasks
|
|
67
|
+
if ((_a = this.__runningTasks) === null || _a === void 0 ? void 0 : _a.size) {
|
|
68
|
+
const pending = Array.from(this.__runningTasks.values()).map((t) => t.promise);
|
|
69
|
+
await Promise.allSettled(pending);
|
|
70
|
+
}
|
|
71
|
+
// Destroy store
|
|
72
|
+
if ((_b = this.__agentStore) === null || _b === void 0 ? void 0 : _b.destroy) {
|
|
73
|
+
await this.__agentStore.destroy();
|
|
74
|
+
}
|
|
75
|
+
if (originalDestroy) {
|
|
76
|
+
await originalDestroy.call(this);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
// Inject smart defaults for stub methods
|
|
80
|
+
for (const methodName of AGENT_METHOD_NAMES) {
|
|
81
|
+
if (!stubMethods.has(methodName))
|
|
82
|
+
continue;
|
|
83
|
+
const factory = agentDefaults_1.AGENT_DEFAULT_FACTORIES[methodName];
|
|
84
|
+
if (factory) {
|
|
85
|
+
clazz.prototype[methodName] = factory();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
clazz[AGENT_ENHANCED] = true;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5oYW5jZUFnZW50Q29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbmhhbmNlQWdlbnRDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBd0JBLHdEQXVFQztBQS9GRCwwREFBNkI7QUFFN0IscURBQWtEO0FBRWxELG1EQUEwRDtBQUUxRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVc7Q0FDdkYsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUM1RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFL0QsdUVBQXVFO0FBQ3ZFLEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UscUVBQXFFO0FBQ3JFLHlFQUF5RTtBQUN6RSxnRUFBZ0U7QUFDaEUsa0VBQWtFO0FBQ2xFLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsOEZBQThGO0FBQzlGLDBFQUEwRTtBQUMxRSxTQUFnQixzQkFBc0IsQ0FBQyxLQUF3QjtJQUM3RCw0REFBNEQ7SUFDNUQsSUFBSSxDQUFFLEtBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BELE9BQU87SUFDVCxDQUFDO0lBRUQsMkVBQTJFO0lBQzNFLElBQUssS0FBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTztJQUNULENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUN0QyxLQUFLLE1BQU0sSUFBSSxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJ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
|
package/package.json
CHANGED
|
@@ -1,31 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/agent-runtime",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.73.0-beta.0",
|
|
4
|
+
"description": "Agent runtime with store abstraction for Egg.js tegg",
|
|
5
5
|
"keywords": [
|
|
6
|
+
"agent",
|
|
6
7
|
"egg",
|
|
7
|
-
"
|
|
8
|
+
"runtime",
|
|
9
|
+
"store",
|
|
10
|
+
"tegg"
|
|
8
11
|
],
|
|
9
|
-
"homepage": "https://github.com/eggjs/
|
|
12
|
+
"homepage": "https://github.com/eggjs/tegg/tree/master/core/agent-runtime",
|
|
10
13
|
"bugs": {
|
|
11
|
-
"url": "https://github.com/eggjs/
|
|
14
|
+
"url": "https://github.com/eggjs/tegg/issues"
|
|
12
15
|
},
|
|
13
16
|
"license": "MIT",
|
|
14
|
-
"author": "fengmk2 <fengmk2@gmail.com> (https://github.com/fengmk2)",
|
|
15
17
|
"repository": {
|
|
16
18
|
"type": "git",
|
|
17
|
-
"url": "git+https://github.com/eggjs/
|
|
18
|
-
"directory": "
|
|
19
|
+
"url": "git+https://github.com/eggjs/tegg.git",
|
|
20
|
+
"directory": "core/agent-runtime"
|
|
19
21
|
},
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"index.js",
|
|
25
|
+
"index.d.ts"
|
|
26
|
+
],
|
|
27
|
+
"main": "dist/index.js",
|
|
28
|
+
"types": "dist/index.d.ts",
|
|
29
|
+
"scripts": {
|
|
30
|
+
"tsc": "tsc -p tsconfig.json",
|
|
31
|
+
"tsc:pub": "tsc -p tsconfig.pub.json",
|
|
32
|
+
"prepublishOnly": "npm run tsc:pub",
|
|
33
|
+
"test": "mocha"
|
|
22
34
|
},
|
|
23
35
|
"dependencies": {
|
|
36
|
+
"@eggjs/tegg-types": "^3.73.0-beta.0",
|
|
37
|
+
"egg-logger": "^3.0.1",
|
|
38
|
+
"oss-client": "^2.5.1"
|
|
24
39
|
},
|
|
25
40
|
"devDependencies": {
|
|
41
|
+
"@types/mocha": "^10.0.0",
|
|
42
|
+
"@types/node": "^20.0.0",
|
|
43
|
+
"mocha": "^10.0.0",
|
|
44
|
+
"typescript": "^5.0.0"
|
|
26
45
|
},
|
|
27
46
|
"engines": {
|
|
28
|
-
"node": ">=
|
|
29
|
-
}
|
|
47
|
+
"node": ">= 16.0.0"
|
|
48
|
+
},
|
|
49
|
+
"gitHead": "419d966f3efc649e533f165ba5d15994d7076722"
|
|
30
50
|
}
|
|
31
|
-
|