@eggjs/agent-runtime 3.73.0-beta.0 → 4.0.2-beta.4

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.
Files changed (44) hide show
  1. package/LICENSE +21 -0
  2. package/dist/AgentRuntime.d.ts +46 -0
  3. package/dist/AgentRuntime.js +298 -0
  4. package/dist/AgentStoreUtils.d.ts +7 -0
  5. package/dist/AgentStoreUtils.js +18 -0
  6. package/dist/HttpSSEWriter.d.ts +20 -0
  7. package/dist/HttpSSEWriter.js +49 -0
  8. package/dist/MessageConverter.d.ts +36 -0
  9. package/dist/MessageConverter.js +123 -0
  10. package/dist/OSSAgentStore.d.ts +66 -0
  11. package/dist/OSSAgentStore.js +133 -0
  12. package/dist/OSSObjectStorageClient.d.ts +51 -0
  13. package/dist/OSSObjectStorageClient.js +78 -0
  14. package/dist/RunBuilder.d.ts +47 -0
  15. package/dist/RunBuilder.js +129 -0
  16. package/dist/SSEWriter.d.ts +17 -0
  17. package/dist/SSEWriter.js +1 -0
  18. package/dist/index.d.ts +10 -10
  19. package/dist/index.js +11 -31
  20. package/package.json +35 -25
  21. package/dist/src/AgentRuntime.d.ts +0 -42
  22. package/dist/src/AgentRuntime.js +0 -376
  23. package/dist/src/AgentStore.d.ts +0 -42
  24. package/dist/src/AgentStore.js +0 -3
  25. package/dist/src/AgentStoreUtils.d.ts +0 -4
  26. package/dist/src/AgentStoreUtils.js +0 -23
  27. package/dist/src/FileAgentStore.d.ts +0 -21
  28. package/dist/src/FileAgentStore.js +0 -104
  29. package/dist/src/HttpSSEWriter.d.ts +0 -16
  30. package/dist/src/HttpSSEWriter.js +0 -51
  31. package/dist/src/MessageConverter.d.ts +0 -32
  32. package/dist/src/MessageConverter.js +0 -108
  33. package/dist/src/OSSAgentStore.d.ts +0 -62
  34. package/dist/src/OSSAgentStore.js +0 -165
  35. package/dist/src/OSSObjectStorageClient.d.ts +0 -46
  36. package/dist/src/OSSObjectStorageClient.js +0 -90
  37. package/dist/src/RunBuilder.d.ts +0 -43
  38. package/dist/src/RunBuilder.js +0 -127
  39. package/dist/src/SSEWriter.d.ts +0 -14
  40. package/dist/src/SSEWriter.js +0 -3
  41. package/dist/src/agentDefaults.d.ts +0 -1
  42. package/dist/src/agentDefaults.js +0 -447
  43. package/dist/src/enhanceAgentController.d.ts +0 -2
  44. package/dist/src/enhanceAgentController.js +0 -90
@@ -1,127 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RunBuilder = void 0;
4
- const agent_runtime_1 = require("@eggjs/tegg-types/agent-runtime");
5
- const AgentStoreUtils_1 = require("./AgentStoreUtils");
6
- /**
7
- * Encapsulates run state transitions.
8
- *
9
- * Mutation methods (`start`, `complete`, `fail`, `cancel`) update internal
10
- * state and return `Partial<RunRecord>` for the store.
11
- *
12
- * `snapshot()` produces a `RunObject` suitable for API responses and SSE events.
13
- */
14
- class RunBuilder {
15
- constructor(id, threadId, createdAt, status, metadata, config) {
16
- this.id = id;
17
- this.threadId = threadId;
18
- this.createdAt = createdAt;
19
- this.status = status;
20
- this.metadata = metadata;
21
- this.config = config;
22
- }
23
- /** Create a RunBuilder from a store RunRecord, using its own threadId. */
24
- static fromRecord(run) {
25
- var _a;
26
- return RunBuilder.create(run, (_a = run.threadId) !== null && _a !== void 0 ? _a : '');
27
- }
28
- /** Create a RunBuilder from a store RunRecord, restoring all mutable state. */
29
- static create(run, threadId) {
30
- var _a, _b, _c, _d, _e;
31
- const rb = new RunBuilder(run.id, threadId, run.createdAt, run.status, run.metadata, run.config);
32
- rb.startedAt = (_a = run.startedAt) !== null && _a !== void 0 ? _a : undefined;
33
- rb.completedAt = (_b = run.completedAt) !== null && _b !== void 0 ? _b : undefined;
34
- rb.cancelledAt = (_c = run.cancelledAt) !== null && _c !== void 0 ? _c : undefined;
35
- rb.failedAt = (_d = run.failedAt) !== null && _d !== void 0 ? _d : undefined;
36
- rb.lastError = (_e = run.lastError) !== null && _e !== void 0 ? _e : undefined;
37
- rb.output = run.output;
38
- if (run.usage) {
39
- rb.usage = { ...run.usage };
40
- }
41
- return rb;
42
- }
43
- /** queued -> in_progress. Returns store update. */
44
- start() {
45
- if (this.status !== agent_runtime_1.RunStatus.Queued) {
46
- throw new agent_runtime_1.InvalidRunStateTransitionError(this.status, agent_runtime_1.RunStatus.InProgress);
47
- }
48
- this.status = agent_runtime_1.RunStatus.InProgress;
49
- this.startedAt = (0, AgentStoreUtils_1.nowUnix)();
50
- return { status: this.status, startedAt: this.startedAt };
51
- }
52
- /** in_progress -> completed. Returns store update. */
53
- complete(output, usage) {
54
- if (this.status !== agent_runtime_1.RunStatus.InProgress) {
55
- throw new agent_runtime_1.InvalidRunStateTransitionError(this.status, agent_runtime_1.RunStatus.Completed);
56
- }
57
- this.status = agent_runtime_1.RunStatus.Completed;
58
- this.completedAt = (0, AgentStoreUtils_1.nowUnix)();
59
- this.output = output;
60
- this.usage = usage;
61
- return {
62
- status: this.status,
63
- output,
64
- usage,
65
- completedAt: this.completedAt,
66
- };
67
- }
68
- /** queued/in_progress -> failed. Returns store update. */
69
- fail(error) {
70
- if (this.status !== agent_runtime_1.RunStatus.InProgress && this.status !== agent_runtime_1.RunStatus.Queued) {
71
- throw new agent_runtime_1.InvalidRunStateTransitionError(this.status, agent_runtime_1.RunStatus.Failed);
72
- }
73
- this.status = agent_runtime_1.RunStatus.Failed;
74
- this.failedAt = (0, AgentStoreUtils_1.nowUnix)();
75
- this.lastError = { code: agent_runtime_1.AgentErrorCode.ExecError, message: error.message };
76
- return {
77
- status: this.status,
78
- lastError: this.lastError,
79
- failedAt: this.failedAt,
80
- };
81
- }
82
- /** in_progress/queued -> cancelling (idempotent if already cancelling). Returns store update. */
83
- cancelling() {
84
- if (this.status === agent_runtime_1.RunStatus.Cancelling) {
85
- return { status: this.status };
86
- }
87
- if (this.status !== agent_runtime_1.RunStatus.InProgress && this.status !== agent_runtime_1.RunStatus.Queued) {
88
- throw new agent_runtime_1.InvalidRunStateTransitionError(this.status, agent_runtime_1.RunStatus.Cancelling);
89
- }
90
- this.status = agent_runtime_1.RunStatus.Cancelling;
91
- return { status: this.status };
92
- }
93
- /** cancelling -> cancelled. Returns store update. */
94
- cancel() {
95
- if (this.status !== agent_runtime_1.RunStatus.Cancelling) {
96
- throw new agent_runtime_1.InvalidRunStateTransitionError(this.status, agent_runtime_1.RunStatus.Cancelled);
97
- }
98
- this.status = agent_runtime_1.RunStatus.Cancelled;
99
- this.cancelledAt = (0, AgentStoreUtils_1.nowUnix)();
100
- return {
101
- status: this.status,
102
- cancelledAt: this.cancelledAt,
103
- };
104
- }
105
- /** Produce a RunObject snapshot for API / SSE. */
106
- snapshot() {
107
- var _a, _b, _c, _d, _e;
108
- return {
109
- id: this.id,
110
- object: agent_runtime_1.AgentObjectType.ThreadRun,
111
- createdAt: this.createdAt,
112
- threadId: this.threadId,
113
- status: this.status,
114
- lastError: this.lastError,
115
- startedAt: (_a = this.startedAt) !== null && _a !== void 0 ? _a : null,
116
- completedAt: (_b = this.completedAt) !== null && _b !== void 0 ? _b : null,
117
- cancelledAt: (_c = this.cancelledAt) !== null && _c !== void 0 ? _c : null,
118
- failedAt: (_d = this.failedAt) !== null && _d !== void 0 ? _d : null,
119
- usage: (_e = this.usage) !== null && _e !== void 0 ? _e : null,
120
- metadata: this.metadata,
121
- output: this.output,
122
- config: this.config,
123
- };
124
- }
125
- }
126
- exports.RunBuilder = RunBuilder;
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVuQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9SdW5CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG1FQUE2SDtBQUU3SCx1REFBNEM7QUFLNUM7Ozs7Ozs7R0FPRztBQUNILE1BQWEsVUFBVTtJQWdCckIsWUFDRSxFQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsTUFBaUIsRUFDakIsUUFBa0MsRUFDbEMsTUFBdUI7UUFFdkIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBYzs7UUFDOUIsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFBLEdBQUcsQ0FBQyxRQUFRLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCwrRUFBK0U7SUFDL0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFjLEVBQUUsUUFBZ0I7O1FBQzVDLE1BQU0sRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRyxFQUFFLENBQUMsU0FBUyxHQUFHLE1BQUEsR0FBRyxDQUFDLFNBQVMsbUNBQUksU0FBUyxDQUFDO1FBQzFDLEVBQUUsQ0FBQyxXQUFX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
@@ -1,14 +0,0 @@
1
- /**
2
- * Abstract interface for writing SSE events.
3
- * Decouples AgentRuntime from HTTP transport details.
4
- */
5
- export interface SSEWriter {
6
- /** Write an SSE event with the given name and JSON-serializable data. */
7
- writeEvent(event: string, data: unknown): void;
8
- /** Whether the underlying connection has been closed. */
9
- readonly closed: boolean;
10
- /** End the SSE stream. */
11
- end(): void;
12
- /** Register a callback for when the client disconnects. */
13
- onClose(callback: () => void): void;
14
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1NFV3JpdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NTRVdyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1 +0,0 @@
1
- export declare const AGENT_DEFAULT_FACTORIES: Record<string, () => Function>;
@@ -1,447 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnREZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZ2VudERlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFpQztBQUNqQyxzREFBcUQ7QUFtQnJELFNBQVMsT0FBTztJQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsUUFBUTtJQUNmLE9BQU8sT0FBTyxxQkFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxlQUFlLENBQUMsR0FBa0M7SUFDekQsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQzVCLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sT0FBTzthQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO2FBQ3BDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBZSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0Qs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
@@ -1,2 +0,0 @@
1
- import type { EggProtoImplClass } from '@eggjs/tegg-types';
2
- export declare function enhanceAgentController(clazz: EggProtoImplClass): void;