@ddlqhd/agent-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/dist/chunk-5QMA2YBY.cjs +2880 -0
- package/dist/chunk-5QMA2YBY.cjs.map +1 -0
- package/dist/chunk-5Y56A64C.cjs +5 -0
- package/dist/chunk-5Y56A64C.cjs.map +1 -0
- package/dist/chunk-A3S3AGE3.js +3 -0
- package/dist/chunk-A3S3AGE3.js.map +1 -0
- package/dist/chunk-CNSGZVRN.cjs +152 -0
- package/dist/chunk-CNSGZVRN.cjs.map +1 -0
- package/dist/chunk-JF5AJQMU.cjs +2788 -0
- package/dist/chunk-JF5AJQMU.cjs.map +1 -0
- package/dist/chunk-NDSL7NPN.js +807 -0
- package/dist/chunk-NDSL7NPN.js.map +1 -0
- package/dist/chunk-OHXW2YM6.js +2708 -0
- package/dist/chunk-OHXW2YM6.js.map +1 -0
- package/dist/chunk-Q3SOMX26.js +2854 -0
- package/dist/chunk-Q3SOMX26.js.map +1 -0
- package/dist/chunk-WH3APNQ5.js +147 -0
- package/dist/chunk-WH3APNQ5.js.map +1 -0
- package/dist/chunk-X35MHWXE.cjs +817 -0
- package/dist/chunk-X35MHWXE.cjs.map +1 -0
- package/dist/cli/index.cjs +926 -0
- package/dist/cli/index.cjs.map +1 -0
- package/dist/cli/index.d.cts +24 -0
- package/dist/cli/index.d.ts +24 -0
- package/dist/cli/index.js +916 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index-DPsZ1zat.d.ts +447 -0
- package/dist/index-RTPmFjMp.d.cts +447 -0
- package/dist/index.cjs +508 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +664 -0
- package/dist/index.d.ts +664 -0
- package/dist/index.js +204 -0
- package/dist/index.js.map +1 -0
- package/dist/models/index.cjs +62 -0
- package/dist/models/index.cjs.map +1 -0
- package/dist/models/index.d.cts +165 -0
- package/dist/models/index.d.ts +165 -0
- package/dist/models/index.js +5 -0
- package/dist/models/index.js.map +1 -0
- package/dist/tools/index.cjs +207 -0
- package/dist/tools/index.cjs.map +1 -0
- package/dist/tools/index.d.cts +108 -0
- package/dist/tools/index.d.ts +108 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types-C0aX_Qdp.d.cts +917 -0
- package/dist/types-C0aX_Qdp.d.ts +917 -0
- package/package.json +80 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
require('./chunk-5Y56A64C.cjs');
|
|
5
|
+
var chunk5QMA2YBY_cjs = require('./chunk-5QMA2YBY.cjs');
|
|
6
|
+
var chunkX35MHWXE_cjs = require('./chunk-X35MHWXE.cjs');
|
|
7
|
+
var chunkJF5AJQMU_cjs = require('./chunk-JF5AJQMU.cjs');
|
|
8
|
+
require('./chunk-CNSGZVRN.cjs');
|
|
9
|
+
|
|
10
|
+
// src/streaming/event-emitter.ts
|
|
11
|
+
var AgentStream = class _AgentStream {
|
|
12
|
+
events = [];
|
|
13
|
+
resolvers = [];
|
|
14
|
+
isEnded = false;
|
|
15
|
+
error = null;
|
|
16
|
+
abortController;
|
|
17
|
+
constructor() {
|
|
18
|
+
this.abortController = new AbortController();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 实现 AsyncIterable 接口
|
|
22
|
+
*/
|
|
23
|
+
[Symbol.asyncIterator]() {
|
|
24
|
+
return {
|
|
25
|
+
next: async () => {
|
|
26
|
+
if (this.abortController.signal.aborted) {
|
|
27
|
+
return { done: true, value: void 0 };
|
|
28
|
+
}
|
|
29
|
+
if (this.error) {
|
|
30
|
+
throw this.error;
|
|
31
|
+
}
|
|
32
|
+
if (this.events.length > 0) {
|
|
33
|
+
const event = this.events.shift();
|
|
34
|
+
return { done: false, value: event };
|
|
35
|
+
}
|
|
36
|
+
if (this.isEnded) {
|
|
37
|
+
return { done: true, value: void 0 };
|
|
38
|
+
}
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
this.resolvers.push({ resolve, reject });
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 推送事件
|
|
47
|
+
*/
|
|
48
|
+
push(event) {
|
|
49
|
+
if (this.error) return;
|
|
50
|
+
if (this.resolvers.length > 0) {
|
|
51
|
+
const resolver = this.resolvers.shift();
|
|
52
|
+
resolver.resolve({ done: false, value: event });
|
|
53
|
+
} else {
|
|
54
|
+
this.events.push(event);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 结束流
|
|
59
|
+
*/
|
|
60
|
+
end(usage) {
|
|
61
|
+
if (usage) {
|
|
62
|
+
this.push({ type: "model_usage", usage });
|
|
63
|
+
}
|
|
64
|
+
this.push({ type: "end", timestamp: Date.now() });
|
|
65
|
+
this.finalize();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Marks the stream complete without pushing an event. Use when the producer already emitted a terminal `{ type: 'end' }` and iterators must unblock.
|
|
69
|
+
*/
|
|
70
|
+
finalize() {
|
|
71
|
+
if (this.isEnded) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
this.isEnded = true;
|
|
75
|
+
while (this.resolvers.length > 0) {
|
|
76
|
+
const resolver = this.resolvers.shift();
|
|
77
|
+
resolver.resolve({ done: true, value: void 0 });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 抛出错误
|
|
82
|
+
*/
|
|
83
|
+
throwError(error) {
|
|
84
|
+
this.error = error;
|
|
85
|
+
while (this.resolvers.length > 0) {
|
|
86
|
+
const resolver = this.resolvers.shift();
|
|
87
|
+
resolver.reject(error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 中止流
|
|
92
|
+
*/
|
|
93
|
+
abort() {
|
|
94
|
+
this.abortController.abort();
|
|
95
|
+
this.isEnded = true;
|
|
96
|
+
while (this.resolvers.length > 0) {
|
|
97
|
+
const resolver = this.resolvers.shift();
|
|
98
|
+
resolver.resolve({ done: true, value: void 0 });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 获取中止信号
|
|
103
|
+
*/
|
|
104
|
+
get signal() {
|
|
105
|
+
return this.abortController.signal;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 合并多个流
|
|
109
|
+
*/
|
|
110
|
+
static merge(...streams) {
|
|
111
|
+
const merged = new _AgentStream();
|
|
112
|
+
let completedCount = 0;
|
|
113
|
+
for (const stream of streams) {
|
|
114
|
+
(async () => {
|
|
115
|
+
try {
|
|
116
|
+
for await (const event of stream) {
|
|
117
|
+
merged.push(event);
|
|
118
|
+
}
|
|
119
|
+
} catch (error) {
|
|
120
|
+
merged.throwError(error);
|
|
121
|
+
} finally {
|
|
122
|
+
completedCount++;
|
|
123
|
+
if (completedCount === streams.length) {
|
|
124
|
+
merged.end();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
})();
|
|
128
|
+
}
|
|
129
|
+
return merged;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* 转换为数组
|
|
133
|
+
*/
|
|
134
|
+
async toArray() {
|
|
135
|
+
const events = [];
|
|
136
|
+
for await (const event of this) {
|
|
137
|
+
events.push(event);
|
|
138
|
+
}
|
|
139
|
+
return events;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 收集文本内容
|
|
143
|
+
*/
|
|
144
|
+
async collectText() {
|
|
145
|
+
let text = "";
|
|
146
|
+
for await (const event of this) {
|
|
147
|
+
if (event.type === "text_delta") {
|
|
148
|
+
text += event.content;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return text;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 过滤事件
|
|
155
|
+
*/
|
|
156
|
+
filter(predicate) {
|
|
157
|
+
const filtered = new _AgentStream();
|
|
158
|
+
(async () => {
|
|
159
|
+
try {
|
|
160
|
+
for await (const event of this) {
|
|
161
|
+
if (predicate(event)) {
|
|
162
|
+
filtered.push(event);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
filtered.end();
|
|
166
|
+
} catch (error) {
|
|
167
|
+
filtered.throwError(error);
|
|
168
|
+
}
|
|
169
|
+
})();
|
|
170
|
+
return filtered;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* 转换事件
|
|
174
|
+
*/
|
|
175
|
+
map(transform) {
|
|
176
|
+
const self = this;
|
|
177
|
+
return {
|
|
178
|
+
async *[Symbol.asyncIterator]() {
|
|
179
|
+
for await (const event of self) {
|
|
180
|
+
yield transform(event);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
function createStream() {
|
|
187
|
+
return new AgentStream();
|
|
188
|
+
}
|
|
189
|
+
function fromAsyncIterable(iterable) {
|
|
190
|
+
const stream = new AgentStream();
|
|
191
|
+
(async () => {
|
|
192
|
+
try {
|
|
193
|
+
for await (const event of iterable) {
|
|
194
|
+
stream.push(event);
|
|
195
|
+
}
|
|
196
|
+
stream.end();
|
|
197
|
+
} catch (error) {
|
|
198
|
+
stream.throwError(error);
|
|
199
|
+
}
|
|
200
|
+
})();
|
|
201
|
+
return stream;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
Object.defineProperty(exports, "Agent", {
|
|
205
|
+
enumerable: true,
|
|
206
|
+
get: function () { return chunk5QMA2YBY_cjs.Agent; }
|
|
207
|
+
});
|
|
208
|
+
Object.defineProperty(exports, "DEFAULT_SYSTEM_PROMPT", {
|
|
209
|
+
enumerable: true,
|
|
210
|
+
get: function () { return chunk5QMA2YBY_cjs.DEFAULT_SYSTEM_PROMPT; }
|
|
211
|
+
});
|
|
212
|
+
Object.defineProperty(exports, "JsonlStorage", {
|
|
213
|
+
enumerable: true,
|
|
214
|
+
get: function () { return chunk5QMA2YBY_cjs.JsonlStorage; }
|
|
215
|
+
});
|
|
216
|
+
Object.defineProperty(exports, "MCPAdapter", {
|
|
217
|
+
enumerable: true,
|
|
218
|
+
get: function () { return chunk5QMA2YBY_cjs.MCPAdapter; }
|
|
219
|
+
});
|
|
220
|
+
Object.defineProperty(exports, "MCPClient", {
|
|
221
|
+
enumerable: true,
|
|
222
|
+
get: function () { return chunk5QMA2YBY_cjs.MCPClient; }
|
|
223
|
+
});
|
|
224
|
+
Object.defineProperty(exports, "MemoryManager", {
|
|
225
|
+
enumerable: true,
|
|
226
|
+
get: function () { return chunk5QMA2YBY_cjs.MemoryManager; }
|
|
227
|
+
});
|
|
228
|
+
Object.defineProperty(exports, "MemoryStorage", {
|
|
229
|
+
enumerable: true,
|
|
230
|
+
get: function () { return chunk5QMA2YBY_cjs.MemoryStorage; }
|
|
231
|
+
});
|
|
232
|
+
Object.defineProperty(exports, "SessionManager", {
|
|
233
|
+
enumerable: true,
|
|
234
|
+
get: function () { return chunk5QMA2YBY_cjs.SessionManager; }
|
|
235
|
+
});
|
|
236
|
+
Object.defineProperty(exports, "SkillLoader", {
|
|
237
|
+
enumerable: true,
|
|
238
|
+
get: function () { return chunk5QMA2YBY_cjs.SkillLoader; }
|
|
239
|
+
});
|
|
240
|
+
Object.defineProperty(exports, "SkillRegistry", {
|
|
241
|
+
enumerable: true,
|
|
242
|
+
get: function () { return chunk5QMA2YBY_cjs.SkillRegistry; }
|
|
243
|
+
});
|
|
244
|
+
Object.defineProperty(exports, "StreamChunkProcessor", {
|
|
245
|
+
enumerable: true,
|
|
246
|
+
get: function () { return chunk5QMA2YBY_cjs.StreamChunkProcessor; }
|
|
247
|
+
});
|
|
248
|
+
Object.defineProperty(exports, "createAgent", {
|
|
249
|
+
enumerable: true,
|
|
250
|
+
get: function () { return chunk5QMA2YBY_cjs.createAgent; }
|
|
251
|
+
});
|
|
252
|
+
Object.defineProperty(exports, "createJsonlStorage", {
|
|
253
|
+
enumerable: true,
|
|
254
|
+
get: function () { return chunk5QMA2YBY_cjs.createJsonlStorage; }
|
|
255
|
+
});
|
|
256
|
+
Object.defineProperty(exports, "createMCPAdapter", {
|
|
257
|
+
enumerable: true,
|
|
258
|
+
get: function () { return chunk5QMA2YBY_cjs.createMCPAdapter; }
|
|
259
|
+
});
|
|
260
|
+
Object.defineProperty(exports, "createMCPClient", {
|
|
261
|
+
enumerable: true,
|
|
262
|
+
get: function () { return chunk5QMA2YBY_cjs.createMCPClient; }
|
|
263
|
+
});
|
|
264
|
+
Object.defineProperty(exports, "createMemoryStorage", {
|
|
265
|
+
enumerable: true,
|
|
266
|
+
get: function () { return chunk5QMA2YBY_cjs.createMemoryStorage; }
|
|
267
|
+
});
|
|
268
|
+
Object.defineProperty(exports, "createSessionManager", {
|
|
269
|
+
enumerable: true,
|
|
270
|
+
get: function () { return chunk5QMA2YBY_cjs.createSessionManager; }
|
|
271
|
+
});
|
|
272
|
+
Object.defineProperty(exports, "createSkillLoader", {
|
|
273
|
+
enumerable: true,
|
|
274
|
+
get: function () { return chunk5QMA2YBY_cjs.createSkillLoader; }
|
|
275
|
+
});
|
|
276
|
+
Object.defineProperty(exports, "createSkillRegistry", {
|
|
277
|
+
enumerable: true,
|
|
278
|
+
get: function () { return chunk5QMA2YBY_cjs.createSkillRegistry; }
|
|
279
|
+
});
|
|
280
|
+
Object.defineProperty(exports, "createStorage", {
|
|
281
|
+
enumerable: true,
|
|
282
|
+
get: function () { return chunk5QMA2YBY_cjs.createStorage; }
|
|
283
|
+
});
|
|
284
|
+
Object.defineProperty(exports, "getLatestSessionId", {
|
|
285
|
+
enumerable: true,
|
|
286
|
+
get: function () { return chunk5QMA2YBY_cjs.getLatestSessionId; }
|
|
287
|
+
});
|
|
288
|
+
Object.defineProperty(exports, "getSessionStoragePath", {
|
|
289
|
+
enumerable: true,
|
|
290
|
+
get: function () { return chunk5QMA2YBY_cjs.getSessionStoragePath; }
|
|
291
|
+
});
|
|
292
|
+
Object.defineProperty(exports, "loadMCPConfig", {
|
|
293
|
+
enumerable: true,
|
|
294
|
+
get: function () { return chunk5QMA2YBY_cjs.loadMCPConfig; }
|
|
295
|
+
});
|
|
296
|
+
Object.defineProperty(exports, "parseSkillMd", {
|
|
297
|
+
enumerable: true,
|
|
298
|
+
get: function () { return chunk5QMA2YBY_cjs.parseSkillMd; }
|
|
299
|
+
});
|
|
300
|
+
Object.defineProperty(exports, "validateMCPConfig", {
|
|
301
|
+
enumerable: true,
|
|
302
|
+
get: function () { return chunk5QMA2YBY_cjs.validateMCPConfig; }
|
|
303
|
+
});
|
|
304
|
+
Object.defineProperty(exports, "AnthropicAdapter", {
|
|
305
|
+
enumerable: true,
|
|
306
|
+
get: function () { return chunkX35MHWXE_cjs.AnthropicAdapter; }
|
|
307
|
+
});
|
|
308
|
+
Object.defineProperty(exports, "OllamaAdapter", {
|
|
309
|
+
enumerable: true,
|
|
310
|
+
get: function () { return chunkX35MHWXE_cjs.OllamaAdapter; }
|
|
311
|
+
});
|
|
312
|
+
Object.defineProperty(exports, "OpenAIAdapter", {
|
|
313
|
+
enumerable: true,
|
|
314
|
+
get: function () { return chunkX35MHWXE_cjs.OpenAIAdapter; }
|
|
315
|
+
});
|
|
316
|
+
Object.defineProperty(exports, "createAnthropic", {
|
|
317
|
+
enumerable: true,
|
|
318
|
+
get: function () { return chunkX35MHWXE_cjs.createAnthropic; }
|
|
319
|
+
});
|
|
320
|
+
Object.defineProperty(exports, "createModel", {
|
|
321
|
+
enumerable: true,
|
|
322
|
+
get: function () { return chunkX35MHWXE_cjs.createModel; }
|
|
323
|
+
});
|
|
324
|
+
Object.defineProperty(exports, "createOllama", {
|
|
325
|
+
enumerable: true,
|
|
326
|
+
get: function () { return chunkX35MHWXE_cjs.createOllama; }
|
|
327
|
+
});
|
|
328
|
+
Object.defineProperty(exports, "createOpenAI", {
|
|
329
|
+
enumerable: true,
|
|
330
|
+
get: function () { return chunkX35MHWXE_cjs.createOpenAI; }
|
|
331
|
+
});
|
|
332
|
+
Object.defineProperty(exports, "DEFAULT_GREP_HEAD_LIMIT", {
|
|
333
|
+
enumerable: true,
|
|
334
|
+
get: function () { return chunkJF5AJQMU_cjs.DEFAULT_GREP_HEAD_LIMIT; }
|
|
335
|
+
});
|
|
336
|
+
Object.defineProperty(exports, "HookManager", {
|
|
337
|
+
enumerable: true,
|
|
338
|
+
get: function () { return chunkJF5AJQMU_cjs.HookManager; }
|
|
339
|
+
});
|
|
340
|
+
Object.defineProperty(exports, "MAX_LINE_LENGTH", {
|
|
341
|
+
enumerable: true,
|
|
342
|
+
get: function () { return chunkJF5AJQMU_cjs.MAX_LINE_LENGTH; }
|
|
343
|
+
});
|
|
344
|
+
Object.defineProperty(exports, "ToolRegistry", {
|
|
345
|
+
enumerable: true,
|
|
346
|
+
get: function () { return chunkJF5AJQMU_cjs.ToolRegistry; }
|
|
347
|
+
});
|
|
348
|
+
Object.defineProperty(exports, "agentTool", {
|
|
349
|
+
enumerable: true,
|
|
350
|
+
get: function () { return chunkJF5AJQMU_cjs.agentTool; }
|
|
351
|
+
});
|
|
352
|
+
Object.defineProperty(exports, "bashTool", {
|
|
353
|
+
enumerable: true,
|
|
354
|
+
get: function () { return chunkJF5AJQMU_cjs.bashTool; }
|
|
355
|
+
});
|
|
356
|
+
Object.defineProperty(exports, "buildHookEnv", {
|
|
357
|
+
enumerable: true,
|
|
358
|
+
get: function () { return chunkJF5AJQMU_cjs.buildHookEnv; }
|
|
359
|
+
});
|
|
360
|
+
Object.defineProperty(exports, "createAgentTool", {
|
|
361
|
+
enumerable: true,
|
|
362
|
+
get: function () { return chunkJF5AJQMU_cjs.createAgentTool; }
|
|
363
|
+
});
|
|
364
|
+
Object.defineProperty(exports, "createAskUserQuestionTool", {
|
|
365
|
+
enumerable: true,
|
|
366
|
+
get: function () { return chunkJF5AJQMU_cjs.createAskUserQuestionTool; }
|
|
367
|
+
});
|
|
368
|
+
Object.defineProperty(exports, "createFunctionHook", {
|
|
369
|
+
enumerable: true,
|
|
370
|
+
get: function () { return chunkJF5AJQMU_cjs.createFunctionHook; }
|
|
371
|
+
});
|
|
372
|
+
Object.defineProperty(exports, "createSkillTool", {
|
|
373
|
+
enumerable: true,
|
|
374
|
+
get: function () { return chunkJF5AJQMU_cjs.createSkillTool; }
|
|
375
|
+
});
|
|
376
|
+
Object.defineProperty(exports, "createTool", {
|
|
377
|
+
enumerable: true,
|
|
378
|
+
get: function () { return chunkJF5AJQMU_cjs.createTool; }
|
|
379
|
+
});
|
|
380
|
+
Object.defineProperty(exports, "editTool", {
|
|
381
|
+
enumerable: true,
|
|
382
|
+
get: function () { return chunkJF5AJQMU_cjs.editTool; }
|
|
383
|
+
});
|
|
384
|
+
Object.defineProperty(exports, "formatAnswerSummary", {
|
|
385
|
+
enumerable: true,
|
|
386
|
+
get: function () { return chunkJF5AJQMU_cjs.formatAnswerSummary; }
|
|
387
|
+
});
|
|
388
|
+
Object.defineProperty(exports, "formatAskUserQuestionPrompt", {
|
|
389
|
+
enumerable: true,
|
|
390
|
+
get: function () { return chunkJF5AJQMU_cjs.formatAskUserQuestionPrompt; }
|
|
391
|
+
});
|
|
392
|
+
Object.defineProperty(exports, "getAllBuiltinTools", {
|
|
393
|
+
enumerable: true,
|
|
394
|
+
get: function () { return chunkJF5AJQMU_cjs.getAllBuiltinTools; }
|
|
395
|
+
});
|
|
396
|
+
Object.defineProperty(exports, "getFileSystemTools", {
|
|
397
|
+
enumerable: true,
|
|
398
|
+
get: function () { return chunkJF5AJQMU_cjs.getFileSystemTools; }
|
|
399
|
+
});
|
|
400
|
+
Object.defineProperty(exports, "getGlobalRegistry", {
|
|
401
|
+
enumerable: true,
|
|
402
|
+
get: function () { return chunkJF5AJQMU_cjs.getGlobalRegistry; }
|
|
403
|
+
});
|
|
404
|
+
Object.defineProperty(exports, "getGrepTools", {
|
|
405
|
+
enumerable: true,
|
|
406
|
+
get: function () { return chunkJF5AJQMU_cjs.getGrepTools; }
|
|
407
|
+
});
|
|
408
|
+
Object.defineProperty(exports, "getInteractionTools", {
|
|
409
|
+
enumerable: true,
|
|
410
|
+
get: function () { return chunkJF5AJQMU_cjs.getInteractionTools; }
|
|
411
|
+
});
|
|
412
|
+
Object.defineProperty(exports, "getSafeBuiltinTools", {
|
|
413
|
+
enumerable: true,
|
|
414
|
+
get: function () { return chunkJF5AJQMU_cjs.getSafeBuiltinTools; }
|
|
415
|
+
});
|
|
416
|
+
Object.defineProperty(exports, "getShellTools", {
|
|
417
|
+
enumerable: true,
|
|
418
|
+
get: function () { return chunkJF5AJQMU_cjs.getShellTools; }
|
|
419
|
+
});
|
|
420
|
+
Object.defineProperty(exports, "getSkillTools", {
|
|
421
|
+
enumerable: true,
|
|
422
|
+
get: function () { return chunkJF5AJQMU_cjs.getSkillTools; }
|
|
423
|
+
});
|
|
424
|
+
Object.defineProperty(exports, "getSubagentTools", {
|
|
425
|
+
enumerable: true,
|
|
426
|
+
get: function () { return chunkJF5AJQMU_cjs.getSubagentTools; }
|
|
427
|
+
});
|
|
428
|
+
Object.defineProperty(exports, "getTaskTools", {
|
|
429
|
+
enumerable: true,
|
|
430
|
+
get: function () { return chunkJF5AJQMU_cjs.getTaskTools; }
|
|
431
|
+
});
|
|
432
|
+
Object.defineProperty(exports, "getWebTools", {
|
|
433
|
+
enumerable: true,
|
|
434
|
+
get: function () { return chunkJF5AJQMU_cjs.getWebTools; }
|
|
435
|
+
});
|
|
436
|
+
Object.defineProperty(exports, "globTool", {
|
|
437
|
+
enumerable: true,
|
|
438
|
+
get: function () { return chunkJF5AJQMU_cjs.globTool; }
|
|
439
|
+
});
|
|
440
|
+
Object.defineProperty(exports, "grepTool", {
|
|
441
|
+
enumerable: true,
|
|
442
|
+
get: function () { return chunkJF5AJQMU_cjs.grepTool; }
|
|
443
|
+
});
|
|
444
|
+
Object.defineProperty(exports, "loadHooksSettingsFromProject", {
|
|
445
|
+
enumerable: true,
|
|
446
|
+
get: function () { return chunkJF5AJQMU_cjs.loadHooksSettingsFromProject; }
|
|
447
|
+
});
|
|
448
|
+
Object.defineProperty(exports, "loadHooksSettingsFromUser", {
|
|
449
|
+
enumerable: true,
|
|
450
|
+
get: function () { return chunkJF5AJQMU_cjs.loadHooksSettingsFromUser; }
|
|
451
|
+
});
|
|
452
|
+
Object.defineProperty(exports, "matchTool", {
|
|
453
|
+
enumerable: true,
|
|
454
|
+
get: function () { return chunkJF5AJQMU_cjs.matchTool; }
|
|
455
|
+
});
|
|
456
|
+
Object.defineProperty(exports, "mergeCommandHookLayers", {
|
|
457
|
+
enumerable: true,
|
|
458
|
+
get: function () { return chunkJF5AJQMU_cjs.mergeCommandHookLayers; }
|
|
459
|
+
});
|
|
460
|
+
Object.defineProperty(exports, "parseHooksSettingsFile", {
|
|
461
|
+
enumerable: true,
|
|
462
|
+
get: function () { return chunkJF5AJQMU_cjs.parseHooksSettingsFile; }
|
|
463
|
+
});
|
|
464
|
+
Object.defineProperty(exports, "questionTool", {
|
|
465
|
+
enumerable: true,
|
|
466
|
+
get: function () { return chunkJF5AJQMU_cjs.questionTool; }
|
|
467
|
+
});
|
|
468
|
+
Object.defineProperty(exports, "readFileTool", {
|
|
469
|
+
enumerable: true,
|
|
470
|
+
get: function () { return chunkJF5AJQMU_cjs.readFileTool; }
|
|
471
|
+
});
|
|
472
|
+
Object.defineProperty(exports, "subagentRequestSchema", {
|
|
473
|
+
enumerable: true,
|
|
474
|
+
get: function () { return chunkJF5AJQMU_cjs.subagentRequestSchema; }
|
|
475
|
+
});
|
|
476
|
+
Object.defineProperty(exports, "taskCreateTool", {
|
|
477
|
+
enumerable: true,
|
|
478
|
+
get: function () { return chunkJF5AJQMU_cjs.taskCreateTool; }
|
|
479
|
+
});
|
|
480
|
+
Object.defineProperty(exports, "taskListTool", {
|
|
481
|
+
enumerable: true,
|
|
482
|
+
get: function () { return chunkJF5AJQMU_cjs.taskListTool; }
|
|
483
|
+
});
|
|
484
|
+
Object.defineProperty(exports, "taskUpdateTool", {
|
|
485
|
+
enumerable: true,
|
|
486
|
+
get: function () { return chunkJF5AJQMU_cjs.taskUpdateTool; }
|
|
487
|
+
});
|
|
488
|
+
Object.defineProperty(exports, "truncateMatchLineForDisplay", {
|
|
489
|
+
enumerable: true,
|
|
490
|
+
get: function () { return chunkJF5AJQMU_cjs.truncateMatchLineForDisplay; }
|
|
491
|
+
});
|
|
492
|
+
Object.defineProperty(exports, "webFetchTool", {
|
|
493
|
+
enumerable: true,
|
|
494
|
+
get: function () { return chunkJF5AJQMU_cjs.webFetchTool; }
|
|
495
|
+
});
|
|
496
|
+
Object.defineProperty(exports, "webSearchTool", {
|
|
497
|
+
enumerable: true,
|
|
498
|
+
get: function () { return chunkJF5AJQMU_cjs.webSearchTool; }
|
|
499
|
+
});
|
|
500
|
+
Object.defineProperty(exports, "writeFileTool", {
|
|
501
|
+
enumerable: true,
|
|
502
|
+
get: function () { return chunkJF5AJQMU_cjs.writeFileTool; }
|
|
503
|
+
});
|
|
504
|
+
exports.AgentStream = AgentStream;
|
|
505
|
+
exports.createStream = createStream;
|
|
506
|
+
exports.fromAsyncIterable = fromAsyncIterable;
|
|
507
|
+
//# sourceMappingURL=index.cjs.map
|
|
508
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/streaming/event-emitter.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type { StreamEvent, TokenUsage } from '../core/types.js';\n\n/**\n * Agent 流类\n * 实现 AsyncIterable 接口,支持 for await...of 遍历\n */\nexport class AgentStream implements AsyncIterable<StreamEvent> {\n private events: StreamEvent[] = [];\n private resolvers: Array<{\n resolve: (value: IteratorResult<StreamEvent>) => void;\n reject: (error: Error) => void;\n }> = [];\n private isEnded = false;\n private error: Error | null = null;\n private abortController: AbortController;\n\n constructor() {\n this.abortController = new AbortController();\n }\n\n /**\n * 实现 AsyncIterable 接口\n */\n [Symbol.asyncIterator](): AsyncIterator<StreamEvent> {\n return {\n next: async (): Promise<IteratorResult<StreamEvent>> => {\n // 检查是否中止\n if (this.abortController.signal.aborted) {\n return { done: true, value: undefined };\n }\n\n // 检查是否有错误\n if (this.error) {\n throw this.error;\n }\n\n // 检查是否有缓存事件\n if (this.events.length > 0) {\n const event = this.events.shift()!;\n return { done: false, value: event };\n }\n\n // 检查是否已结束\n if (this.isEnded) {\n return { done: true, value: undefined };\n }\n\n // 等待新事件\n return new Promise((resolve, reject) => {\n this.resolvers.push({ resolve, reject });\n });\n }\n };\n }\n\n /**\n * 推送事件\n */\n push(event: StreamEvent): void {\n if (this.error) return;\n\n // 如果有等待的 resolver,直接 resolve\n if (this.resolvers.length > 0) {\n const resolver = this.resolvers.shift()!;\n resolver.resolve({ done: false, value: event });\n } else {\n // 否则缓存事件\n this.events.push(event);\n }\n }\n\n /**\n * 结束流\n */\n end(usage?: TokenUsage): void {\n if (usage) {\n this.push({ type: 'model_usage', usage });\n }\n\n this.push({ type: 'end', timestamp: Date.now() });\n\n this.finalize();\n }\n\n /**\n * Marks the stream complete without pushing an event. Use when the producer already emitted a terminal `{ type: 'end' }` and iterators must unblock.\n */\n finalize(): void {\n if (this.isEnded) {\n return;\n }\n this.isEnded = true;\n\n while (this.resolvers.length > 0) {\n const resolver = this.resolvers.shift()!;\n resolver.resolve({ done: true, value: undefined });\n }\n }\n\n /**\n * 抛出错误\n */\n throwError(error: Error): void {\n this.error = error;\n\n // reject 所有等待的 resolver\n while (this.resolvers.length > 0) {\n const resolver = this.resolvers.shift()!;\n resolver.reject(error);\n }\n }\n\n /**\n * 中止流\n */\n abort(): void {\n this.abortController.abort();\n this.isEnded = true;\n\n // resolve 所有等待的 resolver\n while (this.resolvers.length > 0) {\n const resolver = this.resolvers.shift()!;\n resolver.resolve({ done: true, value: undefined });\n }\n }\n\n /**\n * 获取中止信号\n */\n get signal(): AbortSignal {\n return this.abortController.signal;\n }\n\n /**\n * 合并多个流\n */\n static merge(...streams: AgentStream[]): AgentStream {\n const merged = new AgentStream();\n let completedCount = 0;\n\n for (const stream of streams) {\n (async () => {\n try {\n for await (const event of stream) {\n merged.push(event);\n }\n } catch (error) {\n merged.throwError(error as Error);\n } finally {\n completedCount++;\n if (completedCount === streams.length) {\n merged.end();\n }\n }\n })();\n }\n\n return merged;\n }\n\n /**\n * 转换为数组\n */\n async toArray(): Promise<StreamEvent[]> {\n const events: StreamEvent[] = [];\n for await (const event of this) {\n events.push(event);\n }\n return events;\n }\n\n /**\n * 收集文本内容\n */\n async collectText(): Promise<string> {\n let text = '';\n for await (const event of this) {\n if (event.type === 'text_delta') {\n text += event.content;\n }\n }\n return text;\n }\n\n /**\n * 过滤事件\n */\n filter(predicate: (event: StreamEvent) => boolean): AgentStream {\n const filtered = new AgentStream();\n\n (async () => {\n try {\n for await (const event of this) {\n if (predicate(event)) {\n filtered.push(event);\n }\n }\n filtered.end();\n } catch (error) {\n filtered.throwError(error as Error);\n }\n })();\n\n return filtered;\n }\n\n /**\n * 转换事件\n */\n map<T>(transform: (event: StreamEvent) => T): AsyncIterable<T> {\n const self = this;\n\n return {\n async *[Symbol.asyncIterator]() {\n for await (const event of self) {\n yield transform(event);\n }\n }\n };\n }\n}\n\n/**\n * 创建 Agent 流\n */\nexport function createStream(): AgentStream {\n return new AgentStream();\n}\n\n/**\n * 从 AsyncIterable 创建 Agent 流\n */\nexport function fromAsyncIterable(iterable: AsyncIterable<StreamEvent>): AgentStream {\n const stream = new AgentStream();\n\n (async () => {\n try {\n for await (const event of iterable) {\n stream.push(event);\n }\n stream.end();\n } catch (error) {\n stream.throwError(error as Error);\n }\n })();\n\n return stream;\n}\n"]}
|