@tashiscool/agents 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 +186 -0
- package/dist/conversation.d.ts +146 -0
- package/dist/conversation.d.ts.map +1 -0
- package/dist/conversation.js +239 -0
- package/dist/conversation.js.map +1 -0
- package/dist/events.d.ts +218 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +299 -0
- package/dist/events.js.map +1 -0
- package/dist/executor.d.ts +144 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +362 -0
- package/dist/executor.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/langchain.d.ts +210 -0
- package/dist/langchain.d.ts.map +1 -0
- package/dist/langchain.js +333 -0
- package/dist/langchain.js.map +1 -0
- package/dist/mcp.d.ts +208 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +266 -0
- package/dist/mcp.js.map +1 -0
- package/dist/memory.d.ts +96 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +248 -0
- package/dist/memory.js.map +1 -0
- package/dist/oauth.d.ts +158 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +344 -0
- package/dist/oauth.js.map +1 -0
- package/dist/output.d.ts +262 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +249 -0
- package/dist/output.js.map +1 -0
- package/dist/session.d.ts +212 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +347 -0
- package/dist/session.js.map +1 -0
- package/dist/tools.d.ts +125 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +195 -0
- package/dist/tools.js.map +1 -0
- package/package.json +45 -0
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Event Stream
|
|
3
|
+
* Process and handle streaming events from LLM agents
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Base event types for agent execution
|
|
7
|
+
*/
|
|
8
|
+
export type AgentEventType = 'agent_start' | 'agent_end' | 'agent_error' | 'llm_start' | 'llm_stream' | 'llm_end' | 'llm_error' | 'tool_start' | 'tool_end' | 'tool_error' | 'thinking_start' | 'thinking_end' | 'message_start' | 'message_delta' | 'message_end';
|
|
9
|
+
/**
|
|
10
|
+
* Base agent event
|
|
11
|
+
*/
|
|
12
|
+
export interface AgentEvent<T = unknown> {
|
|
13
|
+
/** Event type */
|
|
14
|
+
type: AgentEventType;
|
|
15
|
+
/** Event timestamp */
|
|
16
|
+
timestamp: Date;
|
|
17
|
+
/** Run ID for correlation */
|
|
18
|
+
runId: string;
|
|
19
|
+
/** Parent run ID (for nested operations) */
|
|
20
|
+
parentRunId?: string;
|
|
21
|
+
/** Event payload */
|
|
22
|
+
data: T;
|
|
23
|
+
/** Event metadata */
|
|
24
|
+
metadata?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Agent start event data
|
|
28
|
+
*/
|
|
29
|
+
export interface AgentStartData {
|
|
30
|
+
agentName: string;
|
|
31
|
+
input: unknown;
|
|
32
|
+
tools?: string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Agent end event data
|
|
36
|
+
*/
|
|
37
|
+
export interface AgentEndData {
|
|
38
|
+
agentName: string;
|
|
39
|
+
output: unknown;
|
|
40
|
+
durationMs: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* LLM stream event data
|
|
44
|
+
*/
|
|
45
|
+
export interface LlmStreamData {
|
|
46
|
+
model: string;
|
|
47
|
+
delta: string;
|
|
48
|
+
finishReason?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Tool call event data
|
|
52
|
+
*/
|
|
53
|
+
export interface ToolCallData {
|
|
54
|
+
toolName: string;
|
|
55
|
+
toolCallId: string;
|
|
56
|
+
arguments: Record<string, unknown>;
|
|
57
|
+
result?: unknown;
|
|
58
|
+
error?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Event handler function
|
|
62
|
+
*/
|
|
63
|
+
export type EventHandler<T = unknown> = (event: AgentEvent<T>) => void | Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Event filter function
|
|
66
|
+
*/
|
|
67
|
+
export type EventFilter = (event: AgentEvent) => boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Event transformer function
|
|
70
|
+
*/
|
|
71
|
+
export type EventTransformer<TIn = unknown, TOut = unknown> = (event: AgentEvent<TIn>) => AgentEvent<TOut> | null;
|
|
72
|
+
/**
|
|
73
|
+
* Event stream processor
|
|
74
|
+
*/
|
|
75
|
+
export declare class EventStreamProcessor {
|
|
76
|
+
private handlers;
|
|
77
|
+
private filters;
|
|
78
|
+
private transformers;
|
|
79
|
+
private eventBuffer;
|
|
80
|
+
private bufferSize;
|
|
81
|
+
private isProcessing;
|
|
82
|
+
constructor(options?: {
|
|
83
|
+
bufferSize?: number;
|
|
84
|
+
});
|
|
85
|
+
/**
|
|
86
|
+
* Subscribe to specific event type
|
|
87
|
+
*/
|
|
88
|
+
on<T>(type: AgentEventType | '*', handler: EventHandler<T>): () => void;
|
|
89
|
+
/**
|
|
90
|
+
* Subscribe to multiple event types
|
|
91
|
+
*/
|
|
92
|
+
onMany(types: AgentEventType[], handler: EventHandler): () => void;
|
|
93
|
+
/**
|
|
94
|
+
* Add event filter
|
|
95
|
+
*/
|
|
96
|
+
addFilter(filter: EventFilter): void;
|
|
97
|
+
/**
|
|
98
|
+
* Add event transformer
|
|
99
|
+
*/
|
|
100
|
+
addTransformer(transformer: EventTransformer): void;
|
|
101
|
+
/**
|
|
102
|
+
* Process a single event
|
|
103
|
+
*/
|
|
104
|
+
process(event: AgentEvent): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Process multiple events
|
|
107
|
+
*/
|
|
108
|
+
processAll(events: AgentEvent[]): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Get buffered events
|
|
111
|
+
*/
|
|
112
|
+
getBuffer(): AgentEvent[];
|
|
113
|
+
/**
|
|
114
|
+
* Get events by type from buffer
|
|
115
|
+
*/
|
|
116
|
+
getBufferedByType(type: AgentEventType): AgentEvent[];
|
|
117
|
+
/**
|
|
118
|
+
* Get events by run ID
|
|
119
|
+
*/
|
|
120
|
+
getBufferedByRun(runId: string): AgentEvent[];
|
|
121
|
+
/**
|
|
122
|
+
* Clear buffer
|
|
123
|
+
*/
|
|
124
|
+
clearBuffer(): void;
|
|
125
|
+
/**
|
|
126
|
+
* Remove all handlers
|
|
127
|
+
*/
|
|
128
|
+
removeAllHandlers(): void;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Event emitter for agent execution
|
|
132
|
+
*/
|
|
133
|
+
export declare class AgentEventEmitter {
|
|
134
|
+
private processor;
|
|
135
|
+
private currentRunId;
|
|
136
|
+
private parentRunId?;
|
|
137
|
+
private startTime;
|
|
138
|
+
constructor(processor?: EventStreamProcessor, parentRunId?: string);
|
|
139
|
+
/**
|
|
140
|
+
* Get current run ID
|
|
141
|
+
*/
|
|
142
|
+
get runId(): string;
|
|
143
|
+
/**
|
|
144
|
+
* Create child emitter for nested operations
|
|
145
|
+
*/
|
|
146
|
+
child(): AgentEventEmitter;
|
|
147
|
+
/**
|
|
148
|
+
* Emit an event
|
|
149
|
+
*/
|
|
150
|
+
emit<T>(type: AgentEventType, data: T): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Emit agent start
|
|
153
|
+
*/
|
|
154
|
+
agentStart(agentName: string, input: unknown, tools?: string[]): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Emit agent end
|
|
157
|
+
*/
|
|
158
|
+
agentEnd(agentName: string, output: unknown): Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* Emit agent error
|
|
161
|
+
*/
|
|
162
|
+
agentError(error: Error): Promise<void>;
|
|
163
|
+
/**
|
|
164
|
+
* Emit LLM stream delta
|
|
165
|
+
*/
|
|
166
|
+
llmStream(model: string, delta: string, finishReason?: string): Promise<void>;
|
|
167
|
+
/**
|
|
168
|
+
* Emit tool start
|
|
169
|
+
*/
|
|
170
|
+
toolStart(toolName: string, toolCallId: string, args: Record<string, unknown>): Promise<void>;
|
|
171
|
+
/**
|
|
172
|
+
* Emit tool end
|
|
173
|
+
*/
|
|
174
|
+
toolEnd(toolName: string, toolCallId: string, args: Record<string, unknown>, result: unknown): Promise<void>;
|
|
175
|
+
/**
|
|
176
|
+
* Emit tool error
|
|
177
|
+
*/
|
|
178
|
+
toolError(toolName: string, toolCallId: string, args: Record<string, unknown>, error: string): Promise<void>;
|
|
179
|
+
/**
|
|
180
|
+
* Get the processor
|
|
181
|
+
*/
|
|
182
|
+
getProcessor(): EventStreamProcessor;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Create an event stream processor
|
|
186
|
+
*/
|
|
187
|
+
export declare function createEventProcessor(options?: {
|
|
188
|
+
bufferSize?: number;
|
|
189
|
+
}): EventStreamProcessor;
|
|
190
|
+
/**
|
|
191
|
+
* Create an event emitter
|
|
192
|
+
*/
|
|
193
|
+
export declare function createEventEmitter(processor?: EventStreamProcessor): AgentEventEmitter;
|
|
194
|
+
/**
|
|
195
|
+
* Common event filters
|
|
196
|
+
*/
|
|
197
|
+
export declare const EventFilters: {
|
|
198
|
+
/** Filter by run ID */
|
|
199
|
+
byRunId: (runId: string) => EventFilter;
|
|
200
|
+
/** Filter by event types */
|
|
201
|
+
byTypes: (types: AgentEventType[]) => EventFilter;
|
|
202
|
+
/** Exclude event types */
|
|
203
|
+
excludeTypes: (types: AgentEventType[]) => EventFilter;
|
|
204
|
+
/** Filter LLM events only */
|
|
205
|
+
llmOnly: () => EventFilter;
|
|
206
|
+
/** Filter tool events only */
|
|
207
|
+
toolOnly: () => EventFilter;
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* Common event transformers
|
|
211
|
+
*/
|
|
212
|
+
export declare const EventTransformers: {
|
|
213
|
+
/** Add metadata to all events */
|
|
214
|
+
addMetadata: (meta: Record<string, unknown>) => EventTransformer;
|
|
215
|
+
/** Redact sensitive data */
|
|
216
|
+
redact: (keys: string[]) => EventTransformer;
|
|
217
|
+
};
|
|
218
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Event Stream
|
|
3
|
+
* Process and handle streaming events from LLM agents
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Event stream processor
|
|
7
|
+
*/
|
|
8
|
+
export class EventStreamProcessor {
|
|
9
|
+
handlers = new Map();
|
|
10
|
+
filters = [];
|
|
11
|
+
transformers = [];
|
|
12
|
+
eventBuffer = [];
|
|
13
|
+
bufferSize;
|
|
14
|
+
isProcessing = false;
|
|
15
|
+
constructor(options = {}) {
|
|
16
|
+
this.bufferSize = options.bufferSize || 100;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Subscribe to specific event type
|
|
20
|
+
*/
|
|
21
|
+
on(type, handler) {
|
|
22
|
+
if (!this.handlers.has(type)) {
|
|
23
|
+
this.handlers.set(type, []);
|
|
24
|
+
}
|
|
25
|
+
this.handlers.get(type).push(handler);
|
|
26
|
+
// Return unsubscribe function
|
|
27
|
+
return () => {
|
|
28
|
+
const handlers = this.handlers.get(type);
|
|
29
|
+
if (handlers) {
|
|
30
|
+
const index = handlers.indexOf(handler);
|
|
31
|
+
if (index !== -1) {
|
|
32
|
+
handlers.splice(index, 1);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Subscribe to multiple event types
|
|
39
|
+
*/
|
|
40
|
+
onMany(types, handler) {
|
|
41
|
+
const unsubscribes = types.map((type) => this.on(type, handler));
|
|
42
|
+
return () => unsubscribes.forEach((unsub) => unsub());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Add event filter
|
|
46
|
+
*/
|
|
47
|
+
addFilter(filter) {
|
|
48
|
+
this.filters.push(filter);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Add event transformer
|
|
52
|
+
*/
|
|
53
|
+
addTransformer(transformer) {
|
|
54
|
+
this.transformers.push(transformer);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Process a single event
|
|
58
|
+
*/
|
|
59
|
+
async process(event) {
|
|
60
|
+
// Apply filters
|
|
61
|
+
for (const filter of this.filters) {
|
|
62
|
+
if (!filter(event)) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Apply transformers
|
|
67
|
+
let transformed = event;
|
|
68
|
+
for (const transformer of this.transformers) {
|
|
69
|
+
transformed = transformer(transformed);
|
|
70
|
+
if (!transformed)
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// Buffer event
|
|
74
|
+
this.eventBuffer.push(transformed);
|
|
75
|
+
if (this.eventBuffer.length > this.bufferSize) {
|
|
76
|
+
this.eventBuffer.shift();
|
|
77
|
+
}
|
|
78
|
+
// Call specific handlers
|
|
79
|
+
const specificHandlers = this.handlers.get(transformed.type) || [];
|
|
80
|
+
for (const handler of specificHandlers) {
|
|
81
|
+
await handler(transformed);
|
|
82
|
+
}
|
|
83
|
+
// Call wildcard handlers
|
|
84
|
+
const wildcardHandlers = this.handlers.get('*') || [];
|
|
85
|
+
for (const handler of wildcardHandlers) {
|
|
86
|
+
await handler(transformed);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Process multiple events
|
|
91
|
+
*/
|
|
92
|
+
async processAll(events) {
|
|
93
|
+
for (const event of events) {
|
|
94
|
+
await this.process(event);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get buffered events
|
|
99
|
+
*/
|
|
100
|
+
getBuffer() {
|
|
101
|
+
return [...this.eventBuffer];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get events by type from buffer
|
|
105
|
+
*/
|
|
106
|
+
getBufferedByType(type) {
|
|
107
|
+
return this.eventBuffer.filter((e) => e.type === type);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get events by run ID
|
|
111
|
+
*/
|
|
112
|
+
getBufferedByRun(runId) {
|
|
113
|
+
return this.eventBuffer.filter((e) => e.runId === runId);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Clear buffer
|
|
117
|
+
*/
|
|
118
|
+
clearBuffer() {
|
|
119
|
+
this.eventBuffer = [];
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Remove all handlers
|
|
123
|
+
*/
|
|
124
|
+
removeAllHandlers() {
|
|
125
|
+
this.handlers.clear();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Generate run ID
|
|
130
|
+
*/
|
|
131
|
+
function generateRunId() {
|
|
132
|
+
return `run_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Event emitter for agent execution
|
|
136
|
+
*/
|
|
137
|
+
export class AgentEventEmitter {
|
|
138
|
+
processor;
|
|
139
|
+
currentRunId;
|
|
140
|
+
parentRunId;
|
|
141
|
+
startTime;
|
|
142
|
+
constructor(processor, parentRunId) {
|
|
143
|
+
this.processor = processor || new EventStreamProcessor();
|
|
144
|
+
this.currentRunId = generateRunId();
|
|
145
|
+
this.parentRunId = parentRunId;
|
|
146
|
+
this.startTime = Date.now();
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get current run ID
|
|
150
|
+
*/
|
|
151
|
+
get runId() {
|
|
152
|
+
return this.currentRunId;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Create child emitter for nested operations
|
|
156
|
+
*/
|
|
157
|
+
child() {
|
|
158
|
+
return new AgentEventEmitter(this.processor, this.currentRunId);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Emit an event
|
|
162
|
+
*/
|
|
163
|
+
async emit(type, data) {
|
|
164
|
+
const event = {
|
|
165
|
+
type,
|
|
166
|
+
timestamp: new Date(),
|
|
167
|
+
runId: this.currentRunId,
|
|
168
|
+
parentRunId: this.parentRunId,
|
|
169
|
+
data,
|
|
170
|
+
};
|
|
171
|
+
await this.processor.process(event);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Emit agent start
|
|
175
|
+
*/
|
|
176
|
+
async agentStart(agentName, input, tools) {
|
|
177
|
+
await this.emit('agent_start', {
|
|
178
|
+
agentName,
|
|
179
|
+
input,
|
|
180
|
+
tools,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Emit agent end
|
|
185
|
+
*/
|
|
186
|
+
async agentEnd(agentName, output) {
|
|
187
|
+
await this.emit('agent_end', {
|
|
188
|
+
agentName,
|
|
189
|
+
output,
|
|
190
|
+
durationMs: Date.now() - this.startTime,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Emit agent error
|
|
195
|
+
*/
|
|
196
|
+
async agentError(error) {
|
|
197
|
+
await this.emit('agent_error', {
|
|
198
|
+
message: error.message,
|
|
199
|
+
stack: error.stack,
|
|
200
|
+
durationMs: Date.now() - this.startTime,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Emit LLM stream delta
|
|
205
|
+
*/
|
|
206
|
+
async llmStream(model, delta, finishReason) {
|
|
207
|
+
await this.emit('llm_stream', {
|
|
208
|
+
model,
|
|
209
|
+
delta,
|
|
210
|
+
finishReason,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Emit tool start
|
|
215
|
+
*/
|
|
216
|
+
async toolStart(toolName, toolCallId, args) {
|
|
217
|
+
await this.emit('tool_start', {
|
|
218
|
+
toolName,
|
|
219
|
+
toolCallId,
|
|
220
|
+
arguments: args,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Emit tool end
|
|
225
|
+
*/
|
|
226
|
+
async toolEnd(toolName, toolCallId, args, result) {
|
|
227
|
+
await this.emit('tool_end', {
|
|
228
|
+
toolName,
|
|
229
|
+
toolCallId,
|
|
230
|
+
arguments: args,
|
|
231
|
+
result,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Emit tool error
|
|
236
|
+
*/
|
|
237
|
+
async toolError(toolName, toolCallId, args, error) {
|
|
238
|
+
await this.emit('tool_error', {
|
|
239
|
+
toolName,
|
|
240
|
+
toolCallId,
|
|
241
|
+
arguments: args,
|
|
242
|
+
error,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Get the processor
|
|
247
|
+
*/
|
|
248
|
+
getProcessor() {
|
|
249
|
+
return this.processor;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Create an event stream processor
|
|
254
|
+
*/
|
|
255
|
+
export function createEventProcessor(options) {
|
|
256
|
+
return new EventStreamProcessor(options);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Create an event emitter
|
|
260
|
+
*/
|
|
261
|
+
export function createEventEmitter(processor) {
|
|
262
|
+
return new AgentEventEmitter(processor);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Common event filters
|
|
266
|
+
*/
|
|
267
|
+
export const EventFilters = {
|
|
268
|
+
/** Filter by run ID */
|
|
269
|
+
byRunId: (runId) => (event) => event.runId === runId,
|
|
270
|
+
/** Filter by event types */
|
|
271
|
+
byTypes: (types) => (event) => types.includes(event.type),
|
|
272
|
+
/** Exclude event types */
|
|
273
|
+
excludeTypes: (types) => (event) => !types.includes(event.type),
|
|
274
|
+
/** Filter LLM events only */
|
|
275
|
+
llmOnly: () => (event) => event.type.startsWith('llm_'),
|
|
276
|
+
/** Filter tool events only */
|
|
277
|
+
toolOnly: () => (event) => event.type.startsWith('tool_'),
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Common event transformers
|
|
281
|
+
*/
|
|
282
|
+
export const EventTransformers = {
|
|
283
|
+
/** Add metadata to all events */
|
|
284
|
+
addMetadata: (meta) => (event) => ({
|
|
285
|
+
...event,
|
|
286
|
+
metadata: { ...event.metadata, ...meta },
|
|
287
|
+
}),
|
|
288
|
+
/** Redact sensitive data */
|
|
289
|
+
redact: (keys) => (event) => {
|
|
290
|
+
const data = { ...event.data };
|
|
291
|
+
for (const key of keys) {
|
|
292
|
+
if (key in data) {
|
|
293
|
+
data[key] = '[REDACTED]';
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return { ...event, data };
|
|
297
|
+
},
|
|
298
|
+
};
|
|
299
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Batch Executor
|
|
3
|
+
* Execute multiple tool calls with routing, concurrency control, and error handling
|
|
4
|
+
*/
|
|
5
|
+
import type { ToolDefinition, ToolCall, ToolResult } from './tools.js';
|
|
6
|
+
/**
|
|
7
|
+
* Execution priority
|
|
8
|
+
*/
|
|
9
|
+
export type ExecutionPriority = 'high' | 'normal' | 'low';
|
|
10
|
+
/**
|
|
11
|
+
* Execution strategy
|
|
12
|
+
*/
|
|
13
|
+
export type ExecutionStrategy = 'parallel' | 'sequential' | 'adaptive';
|
|
14
|
+
/**
|
|
15
|
+
* Tool call with execution metadata
|
|
16
|
+
*/
|
|
17
|
+
export interface EnhancedToolCall extends ToolCall {
|
|
18
|
+
/** Execution priority */
|
|
19
|
+
priority?: ExecutionPriority;
|
|
20
|
+
/** Timeout in milliseconds */
|
|
21
|
+
timeoutMs?: number;
|
|
22
|
+
/** Number of retries on failure */
|
|
23
|
+
retries?: number;
|
|
24
|
+
/** Dependencies (tool call IDs that must complete first) */
|
|
25
|
+
dependsOn?: string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Enhanced tool result
|
|
29
|
+
*/
|
|
30
|
+
export interface EnhancedToolResult extends ToolResult {
|
|
31
|
+
/** Execution duration in milliseconds */
|
|
32
|
+
durationMs: number;
|
|
33
|
+
/** Number of retries attempted */
|
|
34
|
+
retriesAttempted: number;
|
|
35
|
+
/** Whether result is from cache */
|
|
36
|
+
cached: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Batch execution options
|
|
40
|
+
*/
|
|
41
|
+
export interface BatchExecutionOptions {
|
|
42
|
+
/** Maximum concurrent executions */
|
|
43
|
+
maxConcurrency?: number;
|
|
44
|
+
/** Default timeout per tool call */
|
|
45
|
+
defaultTimeoutMs?: number;
|
|
46
|
+
/** Default number of retries */
|
|
47
|
+
defaultRetries?: number;
|
|
48
|
+
/** Execution strategy */
|
|
49
|
+
strategy?: ExecutionStrategy;
|
|
50
|
+
/** Stop on first error */
|
|
51
|
+
stopOnError?: boolean;
|
|
52
|
+
/** Cache results */
|
|
53
|
+
enableCache?: boolean;
|
|
54
|
+
/** Cache TTL in milliseconds */
|
|
55
|
+
cacheTtlMs?: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Execution progress callback
|
|
59
|
+
*/
|
|
60
|
+
export type ProgressCallback = (progress: {
|
|
61
|
+
completed: number;
|
|
62
|
+
total: number;
|
|
63
|
+
current?: EnhancedToolCall;
|
|
64
|
+
result?: EnhancedToolResult;
|
|
65
|
+
}) => void;
|
|
66
|
+
/**
|
|
67
|
+
* Tool router for dynamic tool selection
|
|
68
|
+
*/
|
|
69
|
+
export interface ToolRouter {
|
|
70
|
+
/** Route a tool call to the appropriate tool */
|
|
71
|
+
route(call: ToolCall): ToolDefinition | undefined;
|
|
72
|
+
/** Check if a tool is available */
|
|
73
|
+
hasRoute(toolName: string): boolean;
|
|
74
|
+
/** List all available routes */
|
|
75
|
+
listRoutes(): string[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Simple tool router implementation
|
|
79
|
+
*/
|
|
80
|
+
export declare class SimpleToolRouter implements ToolRouter {
|
|
81
|
+
private tools;
|
|
82
|
+
private aliases;
|
|
83
|
+
/**
|
|
84
|
+
* Register a tool
|
|
85
|
+
*/
|
|
86
|
+
register(tool: ToolDefinition): void;
|
|
87
|
+
/**
|
|
88
|
+
* Register multiple tools
|
|
89
|
+
*/
|
|
90
|
+
registerAll(tools: ToolDefinition[]): void;
|
|
91
|
+
/**
|
|
92
|
+
* Add an alias for a tool
|
|
93
|
+
*/
|
|
94
|
+
addAlias(alias: string, toolName: string): void;
|
|
95
|
+
route(call: ToolCall): ToolDefinition | undefined;
|
|
96
|
+
hasRoute(toolName: string): boolean;
|
|
97
|
+
listRoutes(): string[];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Batch executor for tool calls
|
|
101
|
+
*/
|
|
102
|
+
export declare class BatchExecutor {
|
|
103
|
+
private router;
|
|
104
|
+
private options;
|
|
105
|
+
private cache?;
|
|
106
|
+
constructor(router: ToolRouter, options?: BatchExecutionOptions);
|
|
107
|
+
/**
|
|
108
|
+
* Execute a single tool call
|
|
109
|
+
*/
|
|
110
|
+
executeOne(call: EnhancedToolCall): Promise<EnhancedToolResult>;
|
|
111
|
+
/**
|
|
112
|
+
* Execute multiple tool calls
|
|
113
|
+
*/
|
|
114
|
+
execute(calls: EnhancedToolCall[], onProgress?: ProgressCallback): Promise<EnhancedToolResult[]>;
|
|
115
|
+
/**
|
|
116
|
+
* Execute sequentially
|
|
117
|
+
*/
|
|
118
|
+
private executeSequential;
|
|
119
|
+
/**
|
|
120
|
+
* Execute in parallel with concurrency limit
|
|
121
|
+
*/
|
|
122
|
+
private executeParallel;
|
|
123
|
+
/**
|
|
124
|
+
* Adaptive execution based on dependencies
|
|
125
|
+
*/
|
|
126
|
+
private executeAdaptive;
|
|
127
|
+
/**
|
|
128
|
+
* Clear cache
|
|
129
|
+
*/
|
|
130
|
+
clearCache(): void;
|
|
131
|
+
/**
|
|
132
|
+
* Cleanup expired cache entries
|
|
133
|
+
*/
|
|
134
|
+
cleanupCache(): number;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Create a batch executor
|
|
138
|
+
*/
|
|
139
|
+
export declare function createBatchExecutor(tools: ToolDefinition[], options?: BatchExecutionOptions): BatchExecutor;
|
|
140
|
+
/**
|
|
141
|
+
* Create a batch executor with custom router
|
|
142
|
+
*/
|
|
143
|
+
export declare function createBatchExecutorWithRouter(router: ToolRouter, options?: BatchExecutionOptions): BatchExecutor;
|
|
144
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|