mono/packages/kbot/dist-in/commands/run-tools.js

61 lines
4.9 KiB
JavaScript

import { content } from '../utils/content.js';
import { onCompletion } from './run-completion.js';
export const runTools = async (client, params, options) => {
const sessionId = Date.now().toString();
const sessionMessages = {
sessionId,
prompt: options.prompt,
timestamp: new Date().toISOString(),
messages: []
};
if (options.dry) {
options.logger.info('Dry run - skipping API call');
return {
result: 'DRY RUN',
sessionMessages,
result_raw: {},
toolCalls: []
};
}
const logMessage = (message, sessionId, prompt) => {
return {
...message,
timestamp: new Date().toISOString(),
sessionId,
prompt
};
};
let runner = null;
try {
runner = await client.beta.chat.completions.runTools(params)
.on('message', (message) => {
options.collector.onMessage(logMessage(message, sessionId, options.prompt));
})
.on('functionCall', (tool) => {
return options.collector.onToolCall(logMessage(tool, sessionId, options.prompt));
})
.on('functionCallResult', (a) => {
options.collector.onFunctionCallResult(a);
})
.on('chatCompletion', options.collector.onChatCompletion)
.on('content', options.collector.onContent);
}
catch (e) {
options.logger.trace(e);
}
let result = content(runner);
try {
result = await runner.finalChatCompletion();
}
catch (error) {
if (error.message.includes("(reading 'map')")) {
options.logger.error('Failed to complete runner: credits :)', error.message, error.message, error);
return;
}
options.logger.error('Failed to complete runner:', error.message, error.issues);
return;
}
const ret = content(result);
return await onCompletion(ret, options);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXRvb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3J1bi10b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRWxELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLE1BQVcsRUFBRSxPQUFrQixFQUFFLEVBQUU7SUFDaEYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3ZDLE1BQU0sZUFBZSxHQUFHO1FBQ3RCLFNBQVM7UUFDVCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1FBQ25DLFFBQVEsRUFBRSxFQUFFO0tBQ2IsQ0FBQTtJQUNELElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDbEQsT0FBTztZQUNMLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLGVBQWU7WUFDZixVQUFVLEVBQUUsRUFBRTtZQUNkLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQVksRUFBRSxTQUFpQixFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzdELE9BQU87WUFDTCxHQUFHLE9BQU87WUFDVixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDbkMsU0FBUztZQUNULE1BQU07U0FDUCxDQUFBO0lBQ0gsQ0FBQyxDQUFBO0lBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFBO0lBQ2pCLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBNkMsQ0FBQzthQUNoRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBbUMsRUFBRSxFQUFFO1lBQ3BELE9BQU8sQ0FBQyxTQUF3QixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUM3RixDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBd0MsRUFBRSxFQUFFO1lBQy9ELE9BQVEsT0FBTyxDQUFDLFNBQXdCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ2xHLENBQUMsQ0FBQzthQUNELEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxTQUF3QixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzNELENBQUMsQ0FBQzthQUNELEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRyxPQUFPLENBQUMsU0FBd0IsQ0FBQyxnQkFBZ0IsQ0FBQzthQUN4RSxFQUFFLENBQUMsU0FBUyxFQUFHLE9BQU8sQ0FBQyxTQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM1QixJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtJQUM3QyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUNsRyxPQUFNO1FBQ1IsQ0FBQztRQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQy9FLE9BQU07SUFDUixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLE9BQU8sTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQ3pDLENBQUMsQ0FBQSJ9