u
This commit is contained in:
@@ -221,12 +221,11 @@ class LLMOrbiter {
|
||||
break;
|
||||
}
|
||||
|
||||
// Execute each tool call locally
|
||||
const pendingAppendedMessages = [];
|
||||
for (let callIdx = 0; callIdx < toolCalls.length; callIdx++) {
|
||||
const callItem = toolCalls[callIdx];
|
||||
const fnName = callItem.function?.name;
|
||||
const fnName = callItem.function.name;
|
||||
const invokeFn = toolMap.get(fnName);
|
||||
|
||||
let result;
|
||||
let isError = false;
|
||||
let errorMsg = null;
|
||||
@@ -251,7 +250,11 @@ class LLMOrbiter {
|
||||
call(onToolCall, { name: fnName, args });
|
||||
|
||||
try {
|
||||
result = await invokeFn(args, { signal: runSignal });
|
||||
result = await invokeFn(args, {
|
||||
signal: runSignal,
|
||||
messages,
|
||||
appendMessage: (msg) => pendingAppendedMessages.push(msg),
|
||||
});
|
||||
} catch (err) {
|
||||
// An abort must propagate, not be recorded as a tool error.
|
||||
if (runSignal.aborted) throw ensureAbortError(runSignal.reason);
|
||||
@@ -291,6 +294,12 @@ class LLMOrbiter {
|
||||
errorMsg = typeof result.error === 'string' ? result.error : JSON.stringify(result.error);
|
||||
call(onToolError, { name: fnName, error: errorMsg, args });
|
||||
}
|
||||
|
||||
if (result && typeof result === 'object' && Array.isArray(result.appendMessages)) {
|
||||
for (const msg of result.appendMessages) {
|
||||
pendingAppendedMessages.push(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,6 +318,12 @@ class LLMOrbiter {
|
||||
}
|
||||
|
||||
if (hasDirectReturn) break;
|
||||
|
||||
if (pendingAppendedMessages.length > 0) {
|
||||
for (const msg of pendingAppendedMessages) {
|
||||
messages.push(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user