mojentic 1.2.4 → 1.5.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/agents/async-dispatcher.d.ts +1 -0
- package/dist/agents/async-dispatcher.d.ts.map +1 -1
- package/dist/agents/async-dispatcher.js +6 -1
- package/dist/agents/async-dispatcher.js.map +1 -1
- package/dist/agents/simple-recursive-agent.d.ts +8 -0
- package/dist/agents/simple-recursive-agent.d.ts.map +1 -1
- package/dist/agents/simple-recursive-agent.js +35 -5
- package/dist/agents/simple-recursive-agent.js.map +1 -1
- package/dist/context/shared-working-memory.js +1 -1
- package/dist/context/shared-working-memory.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/broker.d.ts +10 -4
- package/dist/llm/broker.d.ts.map +1 -1
- package/dist/llm/broker.js +78 -68
- package/dist/llm/broker.js.map +1 -1
- package/dist/llm/gateways/openai-messages-adapter.js +3 -3
- package/dist/llm/gateways/openai-messages-adapter.js.map +1 -1
- package/dist/llm/gateways/openai-model-registry.d.ts.map +1 -1
- package/dist/llm/gateways/openai-model-registry.js +34 -1
- package/dist/llm/gateways/openai-model-registry.js.map +1 -1
- package/dist/llm/models.d.ts +2 -0
- package/dist/llm/models.d.ts.map +1 -1
- package/dist/llm/tools/index.d.ts +1 -0
- package/dist/llm/tools/index.d.ts.map +1 -1
- package/dist/llm/tools/index.js +1 -0
- package/dist/llm/tools/index.js.map +1 -1
- package/dist/llm/tools/runner.d.ts +89 -0
- package/dist/llm/tools/runner.d.ts.map +1 -0
- package/dist/llm/tools/runner.js +130 -0
- package/dist/llm/tools/runner.js.map +1 -0
- package/dist/llm/tools/tool.d.ts +18 -3
- package/dist/llm/tools/tool.d.ts.map +1 -1
- package/dist/llm/tools/tool.js.map +1 -1
- package/dist/realtime/broker.d.ts +40 -0
- package/dist/realtime/broker.d.ts.map +1 -0
- package/dist/realtime/broker.js +74 -0
- package/dist/realtime/broker.js.map +1 -0
- package/dist/realtime/config.d.ts +134 -0
- package/dist/realtime/config.d.ts.map +1 -0
- package/dist/realtime/config.js +23 -0
- package/dist/realtime/config.js.map +1 -0
- package/dist/realtime/events.d.ts +146 -0
- package/dist/realtime/events.d.ts.map +1 -0
- package/dist/realtime/events.js +10 -0
- package/dist/realtime/events.js.map +1 -0
- package/dist/realtime/gateway.d.ts +48 -0
- package/dist/realtime/gateway.d.ts.map +1 -0
- package/dist/realtime/gateway.js +9 -0
- package/dist/realtime/gateway.js.map +1 -0
- package/dist/realtime/index.d.ts +14 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +30 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/openai-gateway.d.ts +39 -0
- package/dist/realtime/openai-gateway.d.ts.map +1 -0
- package/dist/realtime/openai-gateway.js +154 -0
- package/dist/realtime/openai-gateway.js.map +1 -0
- package/dist/realtime/schemas.d.ts +333 -0
- package/dist/realtime/schemas.d.ts.map +1 -0
- package/dist/realtime/schemas.js +243 -0
- package/dist/realtime/schemas.js.map +1 -0
- package/dist/realtime/session.d.ts +115 -0
- package/dist/realtime/session.d.ts.map +1 -0
- package/dist/realtime/session.js +715 -0
- package/dist/realtime/session.js.map +1 -0
- package/dist/realtime/transport.d.ts +87 -0
- package/dist/realtime/transport.d.ts.map +1 -0
- package/dist/realtime/transport.js +115 -0
- package/dist/realtime/transport.js.map +1 -0
- package/dist/tracer/tracerEvents.d.ts +23 -0
- package/dist/tracer/tracerEvents.d.ts.map +1 -1
- package/dist/tracer/tracerEvents.js +40 -1
- package/dist/tracer/tracerEvents.js.map +1 -1
- package/dist/tracer/tracerSystem.d.ts +16 -0
- package/dist/tracer/tracerSystem.d.ts.map +1 -1
- package/dist/tracer/tracerSystem.js +22 -0
- package/dist/tracer/tracerSystem.js.map +1 -1
- package/package.json +27 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-dispatcher.d.ts","sourceRoot":"","sources":["../../src/agents/async-dispatcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAoB,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;
|
|
1
|
+
{"version":3,"file":"async-dispatcher.d.ts","sourceRoot":"","sources":["../../src/agents/async-dispatcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAoB,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,aAAa,CAAa;IAElC;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU;IAKjD;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAMvC;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAO5B;;;;;;;OAOG;IACG,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa3D;;;;;;OAMG;YACW,kBAAkB;IA+ChC;;;;OAIG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACH,SAAS,IAAI,OAAO;CAGrB"}
|
|
@@ -37,6 +37,7 @@ class AsyncDispatcher {
|
|
|
37
37
|
stopFlag = false;
|
|
38
38
|
processingLoop;
|
|
39
39
|
batchSize;
|
|
40
|
+
inFlightCount = 0;
|
|
40
41
|
/**
|
|
41
42
|
* Create a new async dispatcher.
|
|
42
43
|
*
|
|
@@ -97,7 +98,7 @@ class AsyncDispatcher {
|
|
|
97
98
|
*/
|
|
98
99
|
async waitForEmptyQueue(timeout) {
|
|
99
100
|
const startTime = Date.now();
|
|
100
|
-
while (this.eventQueue.length > 0) {
|
|
101
|
+
while (this.eventQueue.length > 0 || this.inFlightCount > 0) {
|
|
101
102
|
if (timeout !== undefined && Date.now() - startTime > timeout) {
|
|
102
103
|
return false;
|
|
103
104
|
}
|
|
@@ -129,6 +130,7 @@ class AsyncDispatcher {
|
|
|
129
130
|
const agents = this.router.getAgents(event);
|
|
130
131
|
// Process through each agent
|
|
131
132
|
for (const agent of agents) {
|
|
133
|
+
this.inFlightCount++;
|
|
132
134
|
try {
|
|
133
135
|
const result = await agent.receiveEventAsync(event);
|
|
134
136
|
if ((0, error_1.isOk)(result)) {
|
|
@@ -146,6 +148,9 @@ class AsyncDispatcher {
|
|
|
146
148
|
catch (error) {
|
|
147
149
|
console.error(`Unexpected error in agent:`, error);
|
|
148
150
|
}
|
|
151
|
+
finally {
|
|
152
|
+
this.inFlightCount--;
|
|
153
|
+
}
|
|
149
154
|
}
|
|
150
155
|
}
|
|
151
156
|
// Small delay before next batch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-dispatcher.js","sourceRoot":"","sources":["../../src/agents/async-dispatcher.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mCAAkD;AAElD,oCAAgC;AAChC,mCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,eAAe;IACT,MAAM,CAAS;IACf,UAAU,GAAY,EAAE,CAAC;IAClC,QAAQ,GAAY,KAAK,CAAC;IAC1B,cAAc,CAAiB;IACtB,SAAS,CAAS;
|
|
1
|
+
{"version":3,"file":"async-dispatcher.js","sourceRoot":"","sources":["../../src/agents/async-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,14 @@ type UnsubscribeFn = () => void;
|
|
|
75
75
|
*/
|
|
76
76
|
export declare class EventEmitter {
|
|
77
77
|
private subscribers;
|
|
78
|
+
private errorHandlers;
|
|
79
|
+
/**
|
|
80
|
+
* Register a handler error handler for async event handler failures.
|
|
81
|
+
*
|
|
82
|
+
* @param handler - The handler error handler function
|
|
83
|
+
* @returns A function that can be called to unregister the handler error handler
|
|
84
|
+
*/
|
|
85
|
+
onError(handler: (error: unknown) => void): UnsubscribeFn;
|
|
78
86
|
/**
|
|
79
87
|
* Subscribe to an event type.
|
|
80
88
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-recursive-agent.d.ts","sourceRoot":"","sources":["../../src/agents/simple-recursive-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,IAAI,EAAE,qBAAqB,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;AAEjB;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF;;GAEG;AACH,KAAK,aAAa,GAAG,MAAM,IAAI,CAAC;AAEhC;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAA0D;
|
|
1
|
+
{"version":3,"file":"simple-recursive-agent.d.ts","sourceRoot":"","sources":["../../src/agents/simple-recursive-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,IAAI,EAAE,qBAAqB,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;AAEjB;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF;;GAEG;AACH,KAAK,aAAa,GAAG,MAAM,IAAI,CAAC;AAEhC;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAA0D;IAC7E,OAAO,CAAC,aAAa,CAAoC;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,aAAa;IAUzD;;;;;;OAMG;IACH,SAAS,CAAC,CAAC,SAAS,cAAc,EAChC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,aAAa;IAqBhB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;CAqBlC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,oBAAoB;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IAEnC;;;;;;;OAOG;gBAED,GAAG,EAAE,SAAS,EACd,cAAc,GAAE,OAAO,EAAO,EAC9B,aAAa,GAAE,MAAU,EACzB,YAAY,CAAC,EAAE,MAAM;IAqBvB;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiD7C;;;;;;;OAOG;YACW,eAAe;IA0B7B;;;;OAIG;YACW,sBAAsB;IAKpC;;;;OAIG;YACW,wBAAwB;IA+BtC;;;;OAIG;YACW,gBAAgB;IAuB9B;;;;;OAKG;YACW,QAAQ;IAItB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -12,6 +12,22 @@ const error_1 = require("../error");
|
|
|
12
12
|
*/
|
|
13
13
|
class EventEmitter {
|
|
14
14
|
subscribers = new Map();
|
|
15
|
+
errorHandlers = [];
|
|
16
|
+
/**
|
|
17
|
+
* Register a handler error handler for async event handler failures.
|
|
18
|
+
*
|
|
19
|
+
* @param handler - The handler error handler function
|
|
20
|
+
* @returns A function that can be called to unregister the handler error handler
|
|
21
|
+
*/
|
|
22
|
+
onError(handler) {
|
|
23
|
+
this.errorHandlers.push(handler);
|
|
24
|
+
return () => {
|
|
25
|
+
const index = this.errorHandlers.indexOf(handler);
|
|
26
|
+
if (index > -1) {
|
|
27
|
+
this.errorHandlers.splice(index, 1);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
15
31
|
/**
|
|
16
32
|
* Subscribe to an event type.
|
|
17
33
|
*
|
|
@@ -48,9 +64,16 @@ class EventEmitter {
|
|
|
48
64
|
const result = handler(event);
|
|
49
65
|
// If the handler returns a promise, schedule it without blocking
|
|
50
66
|
if (result instanceof Promise) {
|
|
51
|
-
//
|
|
67
|
+
// Route errors to registered error handlers or fall back to console.error
|
|
52
68
|
result.catch((error) => {
|
|
53
|
-
|
|
69
|
+
if (this.errorHandlers.length > 0) {
|
|
70
|
+
for (const errorHandler of this.errorHandlers) {
|
|
71
|
+
errorHandler(error);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.error('Error in event handler:', error);
|
|
76
|
+
}
|
|
54
77
|
});
|
|
55
78
|
}
|
|
56
79
|
}
|
|
@@ -124,8 +147,10 @@ class SimpleRecursiveAgent {
|
|
|
124
147
|
async solve(problem) {
|
|
125
148
|
// Create a promise that resolves when the solution is ready
|
|
126
149
|
let resolveSolution;
|
|
127
|
-
|
|
150
|
+
let rejectSolution;
|
|
151
|
+
const solutionPromise = new Promise((resolve, reject) => {
|
|
128
152
|
resolveSolution = resolve;
|
|
153
|
+
rejectSolution = reject;
|
|
129
154
|
});
|
|
130
155
|
// Create the initial problem state
|
|
131
156
|
const state = {
|
|
@@ -145,6 +170,9 @@ class SimpleRecursiveAgent {
|
|
|
145
170
|
const unsubscribeAchieved = this.emitter.subscribe('goal-achieved', handleSolutionEvent);
|
|
146
171
|
const unsubscribeFailed = this.emitter.subscribe('goal-failed', handleSolutionEvent);
|
|
147
172
|
const unsubscribeTimeout = this.emitter.subscribe('timeout', handleSolutionEvent);
|
|
173
|
+
const unsubscribeError = this.emitter.onError((err) => {
|
|
174
|
+
rejectSolution(err instanceof Error ? err : new Error(String(err)));
|
|
175
|
+
});
|
|
148
176
|
// Start the solving process
|
|
149
177
|
this.emitter.emit({ type: 'goal-submitted', state });
|
|
150
178
|
// Wait for the solution or timeout
|
|
@@ -157,6 +185,7 @@ class SimpleRecursiveAgent {
|
|
|
157
185
|
unsubscribeAchieved();
|
|
158
186
|
unsubscribeFailed();
|
|
159
187
|
unsubscribeTimeout();
|
|
188
|
+
unsubscribeError();
|
|
160
189
|
}
|
|
161
190
|
}
|
|
162
191
|
/**
|
|
@@ -205,13 +234,14 @@ class SimpleRecursiveAgent {
|
|
|
205
234
|
const state = event.state;
|
|
206
235
|
const response = event.response;
|
|
207
236
|
// Check if the task failed or succeeded
|
|
208
|
-
|
|
237
|
+
const trimmed = response.trim().toUpperCase();
|
|
238
|
+
if (trimmed === 'FAIL') {
|
|
209
239
|
state.solution = `Failed to solve after ${state.iteration} iterations:\n${response}`;
|
|
210
240
|
state.isComplete = true;
|
|
211
241
|
this.emitter.emit({ type: 'goal-failed', state });
|
|
212
242
|
return;
|
|
213
243
|
}
|
|
214
|
-
else if (
|
|
244
|
+
else if (trimmed === 'DONE') {
|
|
215
245
|
state.solution = response;
|
|
216
246
|
state.isComplete = true;
|
|
217
247
|
this.emitter.emit({ type: 'goal-achieved', state });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-recursive-agent.js","sourceRoot":"","sources":["../../src/agents/simple-recursive-agent.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,sDAAkD;AAElD,oCAAwC;AAmFxC;;GAEG;AACH,MAAa,YAAY;IACf,WAAW,GAAgD,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"simple-recursive-agent.js","sourceRoot":"","sources":["../../src/agents/simple-recursive-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,7 +86,7 @@ class SharedWorkingMemory {
|
|
|
86
86
|
* @returns A copy of the current working memory object
|
|
87
87
|
*/
|
|
88
88
|
getWorkingMemory() {
|
|
89
|
-
return
|
|
89
|
+
return structuredClone(this._workingMemory);
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
92
92
|
* Merge new information into the working memory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-working-memory.js","sourceRoot":"","sources":["../../src/context/shared-working-memory.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;;;;;GAOG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B;IAE/B,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IAEtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,4DAA4D;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,4DAA4D;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IACE,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,mCAAmC;YACnC,4DAA4D;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,WAAsC,EACtC,WAAsC,CACvC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,4DAA4D;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAa,mBAAmB;IACtB,cAAc,CAA0B;IAEhD;;;;OAIG;IACH,YAAY,uBAAgD,EAAE;QAC5D,6DAA6D;QAC7D,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,
|
|
1
|
+
{"version":3,"file":"shared-working-memory.js","sourceRoot":"","sources":["../../src/context/shared-working-memory.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;;;;;GAOG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B;IAE/B,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IAEtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,4DAA4D;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,4DAA4D;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IACE,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,mCAAmC;YACnC,4DAA4D;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,WAAsC,EACtC,WAAsC,CACvC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,4DAA4D;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAa,mBAAmB;IACtB,cAAc,CAA0B;IAEhD;;;;OAIG;IACH,YAAY,uBAAgD,EAAE;QAC5D,6DAA6D;QAC7D,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,oBAAoB,CAAC,aAAsC;QACzD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;CACF;AAjDD,kDAiDC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAG3B,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __exportStar(require("./llm"), exports);
|
|
|
23
23
|
__exportStar(require("./tracer"), exports);
|
|
24
24
|
__exportStar(require("./agents"), exports);
|
|
25
25
|
__exportStar(require("./context"), exports);
|
|
26
|
+
__exportStar(require("./realtime"), exports);
|
|
26
27
|
// Version
|
|
27
28
|
exports.VERSION = '0.1.0';
|
|
28
29
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAE3B,UAAU;AACG,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
package/dist/llm/broker.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { LlmGateway } from './gateway';
|
|
5
5
|
import { LlmMessage, CompletionConfig } from './models';
|
|
6
|
-
import { LlmTool } from './tools';
|
|
6
|
+
import { LlmTool, ToolRunner } from './tools';
|
|
7
7
|
import { Result } from '../error';
|
|
8
8
|
import { TracerSystem } from '../tracer';
|
|
9
9
|
/**
|
|
@@ -24,14 +24,19 @@ export declare class LlmBroker {
|
|
|
24
24
|
private readonly model;
|
|
25
25
|
private readonly gateway;
|
|
26
26
|
private readonly tracer?;
|
|
27
|
+
private readonly toolRunner;
|
|
27
28
|
/**
|
|
28
29
|
* Creates a new LLM broker instance.
|
|
29
30
|
*
|
|
30
31
|
* @param model - The model name to use (e.g., 'qwen3:32b', 'gpt-4')
|
|
31
32
|
* @param gateway - The gateway implementation for the LLM provider
|
|
32
33
|
* @param tracer - Optional tracer system for recording LLM calls and responses
|
|
34
|
+
* @param toolRunner - Optional tool execution strategy. Defaults to {@link SerialToolRunner}
|
|
35
|
+
* for backward compatibility; pass {@link ParallelToolRunner} to dispatch
|
|
36
|
+
* tool calls concurrently within a single assistant turn.
|
|
33
37
|
*/
|
|
34
|
-
constructor(model: string, gateway: LlmGateway, tracer?: TracerSystem);
|
|
38
|
+
constructor(model: string, gateway: LlmGateway, tracer?: TracerSystem, toolRunner?: ToolRunner);
|
|
39
|
+
private runToolBatch;
|
|
35
40
|
/**
|
|
36
41
|
* Generate a text completion from the LLM with automatic recursive tool execution.
|
|
37
42
|
*
|
|
@@ -41,7 +46,7 @@ export declare class LlmBroker {
|
|
|
41
46
|
* @param messages - Conversation history as an array of messages
|
|
42
47
|
* @param tools - Optional array of tools the LLM can call
|
|
43
48
|
* @param config - Optional completion configuration (temperature, tokens, etc.)
|
|
44
|
-
* @param
|
|
49
|
+
* @param correlationId - UUID for tracing related events
|
|
45
50
|
* @returns Result containing the final text response or an error
|
|
46
51
|
*
|
|
47
52
|
* @example
|
|
@@ -57,7 +62,7 @@ export declare class LlmBroker {
|
|
|
57
62
|
* }
|
|
58
63
|
* ```
|
|
59
64
|
*/
|
|
60
|
-
generate(messages: LlmMessage[], tools?: LlmTool[], config?: CompletionConfig,
|
|
65
|
+
generate(messages: LlmMessage[], tools?: LlmTool[], config?: CompletionConfig, correlationId?: string): Promise<Result<string, Error>>;
|
|
61
66
|
/**
|
|
62
67
|
* Generate a structured object that conforms to a JSON schema.
|
|
63
68
|
*
|
|
@@ -120,6 +125,7 @@ export declare class LlmBroker {
|
|
|
120
125
|
* ```
|
|
121
126
|
*/
|
|
122
127
|
generateStream(messages: LlmMessage[], config?: CompletionConfig, tools?: LlmTool[], correlationId?: string): AsyncGenerator<Result<string, Error>>;
|
|
128
|
+
private generateStreamWithTools;
|
|
123
129
|
/**
|
|
124
130
|
* List all available models from the gateway.
|
|
125
131
|
*
|
package/dist/llm/broker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../src/llm/broker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAqB,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../src/llm/broker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAqB,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAwD,UAAU,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,MAAM,EAAwC,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC;;;;;;;;;;;;;GAaG;AACH,qBAAa,SAAS;IAelB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAf1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;;;;;;;;OASG;gBAEgB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACpC,MAAM,CAAC,EAAE,YAAY,EACrB,UAAU,CAAC,EAAE,UAAU;YAMX,YAAY;IAuF1B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,QAAQ,CACZ,QAAQ,EAAE,UAAU,EAAE,EACtB,KAAK,CAAC,EAAE,OAAO,EAAE,EACjB,MAAM,CAAC,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAmFjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9C,QAAQ,EAAE,UAAU,EAAE,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAiE5B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACI,cAAc,CACnB,QAAQ,EAAE,UAAU,EAAE,EACtB,MAAM,CAAC,EAAE,gBAAgB,EACzB,KAAK,CAAC,EAAE,OAAO,EAAE,EACjB,aAAa,CAAC,EAAE,MAAM,GACrB,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAMzB,uBAAuB;IAsHtC;;;;;;;;;;;;OAYG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IAIpD;;;;OAIG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,UAAU,IAAI,UAAU;CAGzB"}
|
package/dist/llm/broker.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.LlmBroker = void 0;
|
|
7
7
|
const models_1 = require("./models");
|
|
8
|
+
const tools_1 = require("./tools");
|
|
8
9
|
const error_1 = require("../error");
|
|
9
10
|
const crypto_1 = require("crypto");
|
|
10
11
|
/**
|
|
@@ -25,17 +26,76 @@ class LlmBroker {
|
|
|
25
26
|
model;
|
|
26
27
|
gateway;
|
|
27
28
|
tracer;
|
|
29
|
+
toolRunner;
|
|
28
30
|
/**
|
|
29
31
|
* Creates a new LLM broker instance.
|
|
30
32
|
*
|
|
31
33
|
* @param model - The model name to use (e.g., 'qwen3:32b', 'gpt-4')
|
|
32
34
|
* @param gateway - The gateway implementation for the LLM provider
|
|
33
35
|
* @param tracer - Optional tracer system for recording LLM calls and responses
|
|
36
|
+
* @param toolRunner - Optional tool execution strategy. Defaults to {@link SerialToolRunner}
|
|
37
|
+
* for backward compatibility; pass {@link ParallelToolRunner} to dispatch
|
|
38
|
+
* tool calls concurrently within a single assistant turn.
|
|
34
39
|
*/
|
|
35
|
-
constructor(model, gateway, tracer) {
|
|
40
|
+
constructor(model, gateway, tracer, toolRunner) {
|
|
36
41
|
this.model = model;
|
|
37
42
|
this.gateway = gateway;
|
|
38
43
|
this.tracer = tracer;
|
|
44
|
+
this.toolRunner = toolRunner ?? new tools_1.SerialToolRunner();
|
|
45
|
+
}
|
|
46
|
+
async runToolBatch(toolCalls, tools, corrId, source) {
|
|
47
|
+
const executions = [];
|
|
48
|
+
const argsByCallId = new Map();
|
|
49
|
+
const parseFailureMessages = [];
|
|
50
|
+
for (const toolCall of toolCalls) {
|
|
51
|
+
try {
|
|
52
|
+
const args = JSON.parse(toolCall.function.arguments);
|
|
53
|
+
argsByCallId.set(toolCall.id, args);
|
|
54
|
+
executions.push({ id: toolCall.id, name: toolCall.function.name, args });
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
parseFailureMessages.push(models_1.Message.tool(JSON.stringify({
|
|
58
|
+
error: err instanceof Error ? err.message : String(err),
|
|
59
|
+
}), toolCall.id, toolCall.function.name));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const batchId = (0, crypto_1.randomUUID)();
|
|
63
|
+
const batchStart = Date.now();
|
|
64
|
+
const outcomes = await this.toolRunner.runBatch(executions, tools, {
|
|
65
|
+
correlationId: corrId,
|
|
66
|
+
source,
|
|
67
|
+
onCallComplete: (outcome) => {
|
|
68
|
+
if (!this.tracer)
|
|
69
|
+
return;
|
|
70
|
+
const args = argsByCallId.get(outcome.id) ?? {};
|
|
71
|
+
const result = outcome.ok ? outcome.result : { error: outcome.error.message };
|
|
72
|
+
this.tracer.recordToolCall(outcome.name, args, result, 'LlmBroker', outcome.durationMs, corrId, source);
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
const successCount = outcomes.filter((o) => o.ok).length;
|
|
76
|
+
const failureCount = outcomes.length - successCount;
|
|
77
|
+
if (this.tracer && (outcomes.length > 0 || parseFailureMessages.length > 0)) {
|
|
78
|
+
this.tracer.recordToolBatch(batchId, executions.map((e) => e.name), successCount, failureCount + parseFailureMessages.length, Date.now() - batchStart, corrId, source);
|
|
79
|
+
}
|
|
80
|
+
const outcomeById = new Map(outcomes.map((o) => [o.id, o]));
|
|
81
|
+
const messages = [];
|
|
82
|
+
for (const toolCall of toolCalls) {
|
|
83
|
+
const outcome = outcomeById.get(toolCall.id);
|
|
84
|
+
if (!outcome) {
|
|
85
|
+
// Argument-parse failures were captured above in input order;
|
|
86
|
+
// pull the next one.
|
|
87
|
+
const parseMsg = parseFailureMessages.shift();
|
|
88
|
+
if (parseMsg) {
|
|
89
|
+
messages.push(parseMsg);
|
|
90
|
+
}
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
const content = outcome.ok
|
|
94
|
+
? JSON.stringify(outcome.result)
|
|
95
|
+
: JSON.stringify({ error: outcome.error.message });
|
|
96
|
+
messages.push(models_1.Message.tool(content, toolCall.id, toolCall.function.name));
|
|
97
|
+
}
|
|
98
|
+
return { outcomes, messages, parseFailures: parseFailureMessages.length };
|
|
39
99
|
}
|
|
40
100
|
/**
|
|
41
101
|
* Generate a text completion from the LLM with automatic recursive tool execution.
|
|
@@ -46,7 +106,7 @@ class LlmBroker {
|
|
|
46
106
|
* @param messages - Conversation history as an array of messages
|
|
47
107
|
* @param tools - Optional array of tools the LLM can call
|
|
48
108
|
* @param config - Optional completion configuration (temperature, tokens, etc.)
|
|
49
|
-
* @param
|
|
109
|
+
* @param correlationId - UUID for tracing related events
|
|
50
110
|
* @returns Result containing the final text response or an error
|
|
51
111
|
*
|
|
52
112
|
* @example
|
|
@@ -62,11 +122,12 @@ class LlmBroker {
|
|
|
62
122
|
* }
|
|
63
123
|
* ```
|
|
64
124
|
*/
|
|
65
|
-
async generate(messages, tools, config,
|
|
125
|
+
async generate(messages, tools, config, correlationId) {
|
|
66
126
|
try {
|
|
67
127
|
const toolDescriptors = tools?.map((t) => t.descriptor());
|
|
68
128
|
const currentMessages = [...messages];
|
|
69
129
|
let iterations = 0;
|
|
130
|
+
const maxToolIterations = config?.maxToolIterations ?? 10;
|
|
70
131
|
// Generate correlationId if not provided
|
|
71
132
|
const corrId = correlationId || (0, crypto_1.randomUUID)();
|
|
72
133
|
while (iterations < maxToolIterations) {
|
|
@@ -95,38 +156,8 @@ class LlmBroker {
|
|
|
95
156
|
if (!tools) {
|
|
96
157
|
return (0, error_1.Err)(new error_1.ToolError('LLM requested tool calls but no tools provided'));
|
|
97
158
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (!tool) {
|
|
101
|
-
currentMessages.push(models_1.Message.tool(JSON.stringify({ error: `Tool ${toolCall.function.name} not found` }), toolCall.id, toolCall.function.name));
|
|
102
|
-
continue;
|
|
103
|
-
}
|
|
104
|
-
try {
|
|
105
|
-
const args = JSON.parse(toolCall.function.arguments);
|
|
106
|
-
// Record tool call with timing
|
|
107
|
-
const toolStartTime = Date.now();
|
|
108
|
-
const toolResult = await tool.run(args);
|
|
109
|
-
const toolDurationMs = Date.now() - toolStartTime;
|
|
110
|
-
if (!(0, error_1.isOk)(toolResult)) {
|
|
111
|
-
currentMessages.push(models_1.Message.tool(JSON.stringify({ error: toolResult.error.message }), toolCall.id, toolCall.function.name));
|
|
112
|
-
// Record tool call error in tracer
|
|
113
|
-
if (this.tracer) {
|
|
114
|
-
this.tracer.recordToolCall(toolCall.function.name, args, { error: toolResult.error.message }, 'LlmBroker', toolDurationMs, corrId, 'LlmBroker.generate');
|
|
115
|
-
}
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
// Record successful tool call in tracer
|
|
119
|
-
if (this.tracer) {
|
|
120
|
-
this.tracer.recordToolCall(toolCall.function.name, args, toolResult.value, 'LlmBroker', toolDurationMs, corrId, 'LlmBroker.generate');
|
|
121
|
-
}
|
|
122
|
-
currentMessages.push(models_1.Message.tool(JSON.stringify(toolResult.value), toolCall.id, toolCall.function.name));
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
currentMessages.push(models_1.Message.tool(JSON.stringify({
|
|
126
|
-
error: error instanceof Error ? error.message : String(error),
|
|
127
|
-
}), toolCall.id, toolCall.function.name));
|
|
128
|
-
}
|
|
129
|
-
}
|
|
159
|
+
const { messages: toolMessages } = await this.runToolBatch(response.toolCalls, tools, corrId, 'LlmBroker.generate');
|
|
160
|
+
currentMessages.push(...toolMessages);
|
|
130
161
|
iterations++;
|
|
131
162
|
}
|
|
132
163
|
return (0, error_1.Err)(new error_1.ToolError(`Maximum tool iterations (${maxToolIterations}) exceeded`));
|
|
@@ -233,7 +264,16 @@ class LlmBroker {
|
|
|
233
264
|
* ```
|
|
234
265
|
*/
|
|
235
266
|
async *generateStream(messages, config, tools, correlationId) {
|
|
267
|
+
const maxToolIterations = config?.maxToolIterations ?? 10;
|
|
236
268
|
const corrId = correlationId || (0, crypto_1.randomUUID)();
|
|
269
|
+
yield* this.generateStreamWithTools(messages, config, tools, corrId, maxToolIterations);
|
|
270
|
+
}
|
|
271
|
+
async *generateStreamWithTools(messages, config, tools, corrId, iterationsRemaining) {
|
|
272
|
+
const maxToolIterations = config?.maxToolIterations ?? 10;
|
|
273
|
+
if (iterationsRemaining <= 0) {
|
|
274
|
+
yield (0, error_1.Err)(new error_1.ToolError(`Maximum tool iterations (${maxToolIterations}) exceeded`));
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
237
277
|
const toolDescriptors = tools?.map((t) => t.descriptor());
|
|
238
278
|
const currentMessages = [...messages];
|
|
239
279
|
let accumulatedContent = '';
|
|
@@ -273,40 +313,10 @@ class LlmBroker {
|
|
|
273
313
|
}
|
|
274
314
|
// Add assistant message with tool calls
|
|
275
315
|
currentMessages.push(models_1.Message.assistant(accumulatedContent, accumulatedToolCalls));
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
const tool = tools.find((t) => t.matches(toolCall.function.name));
|
|
279
|
-
if (!tool) {
|
|
280
|
-
currentMessages.push(models_1.Message.tool(JSON.stringify({ error: `Tool ${toolCall.function.name} not found` }), toolCall.id, toolCall.function.name));
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
try {
|
|
284
|
-
const args = JSON.parse(toolCall.function.arguments);
|
|
285
|
-
const toolStartTime = Date.now();
|
|
286
|
-
const toolResult = await tool.run(args);
|
|
287
|
-
const toolDurationMs = Date.now() - toolStartTime;
|
|
288
|
-
if (!(0, error_1.isOk)(toolResult)) {
|
|
289
|
-
currentMessages.push(models_1.Message.tool(JSON.stringify({ error: toolResult.error.message }), toolCall.id, toolCall.function.name));
|
|
290
|
-
// Record tool call error in tracer
|
|
291
|
-
if (this.tracer) {
|
|
292
|
-
this.tracer.recordToolCall(toolCall.function.name, args, { error: toolResult.error.message }, 'LlmBroker', toolDurationMs, corrId, 'LlmBroker.generateStream');
|
|
293
|
-
}
|
|
294
|
-
continue;
|
|
295
|
-
}
|
|
296
|
-
// Record successful tool call in tracer
|
|
297
|
-
if (this.tracer) {
|
|
298
|
-
this.tracer.recordToolCall(toolCall.function.name, args, toolResult.value, 'LlmBroker', toolDurationMs, corrId, 'LlmBroker.generateStream');
|
|
299
|
-
}
|
|
300
|
-
currentMessages.push(models_1.Message.tool(JSON.stringify(toolResult.value), toolCall.id, toolCall.function.name));
|
|
301
|
-
}
|
|
302
|
-
catch (error) {
|
|
303
|
-
currentMessages.push(models_1.Message.tool(JSON.stringify({
|
|
304
|
-
error: error instanceof Error ? error.message : String(error),
|
|
305
|
-
}), toolCall.id, toolCall.function.name));
|
|
306
|
-
}
|
|
307
|
-
}
|
|
316
|
+
const { messages: toolMessages } = await this.runToolBatch(accumulatedToolCalls, tools, corrId, 'LlmBroker.generateStream');
|
|
317
|
+
currentMessages.push(...toolMessages);
|
|
308
318
|
// Recursively stream with updated messages
|
|
309
|
-
yield* this.
|
|
319
|
+
yield* this.generateStreamWithTools(currentMessages, config, tools, corrId, iterationsRemaining - 1);
|
|
310
320
|
}
|
|
311
321
|
else if (chunk.done) {
|
|
312
322
|
// Stream done without tool calls
|
package/dist/llm/broker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/llm/broker.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,qCAA2E;
|
|
1
|
+
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/llm/broker.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,18 +127,18 @@ function adaptMessagesToOpenAI(messages) {
|
|
|
127
127
|
type: 'function',
|
|
128
128
|
function: {
|
|
129
129
|
name: tc.function.name,
|
|
130
|
-
arguments:
|
|
130
|
+
arguments: tc.function.arguments,
|
|
131
131
|
},
|
|
132
132
|
}));
|
|
133
133
|
}
|
|
134
134
|
newMessages.push(msg);
|
|
135
135
|
}
|
|
136
136
|
else if (m.role === 'tool') {
|
|
137
|
-
if (m.
|
|
137
|
+
if (m.tool_call_id) {
|
|
138
138
|
newMessages.push({
|
|
139
139
|
role: 'tool',
|
|
140
140
|
content: typeof m.content === 'string' ? m.content : '',
|
|
141
|
-
tool_call_id: m.
|
|
141
|
+
tool_call_id: m.tool_call_id,
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
}
|