Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5d34652d46 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ztimson/ai-utils",
|
||||
"version": "0.8.6",
|
||||
"version": "0.8.7",
|
||||
"description": "AI Utility library",
|
||||
"author": "Zak Timson",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -148,6 +148,7 @@ export class OpenAi extends LLMProvider {
|
||||
try {
|
||||
const args = JSONAttemptParse(toolCall.function.arguments, {});
|
||||
const result = await tool.fn(args, options.stream, this.ai);
|
||||
console.log(result);
|
||||
return {role: 'tool', tool_call_id: toolCall.id, content: JSONSanitize(result)};
|
||||
} catch (err: any) {
|
||||
return {role: 'tool', tool_call_id: toolCall.id, content: JSONSanitize({error: err?.message || err?.toString() || 'Unknown'})};
|
||||
|
||||
14
src/tools.ts
14
src/tools.ts
@@ -65,14 +65,15 @@ export const ExecTool: AiTool = {
|
||||
},
|
||||
fn: async (args, stream, ai) => {
|
||||
try {
|
||||
switch(args.type) {
|
||||
switch(args.language) {
|
||||
case 'cli':
|
||||
return await CliTool.fn({command: args.code}, stream, ai);
|
||||
case 'node':
|
||||
return await JSTool.fn({code: args.code}, stream, ai);
|
||||
case 'python': {
|
||||
case 'python':
|
||||
return await PythonTool.fn({code: args.code}, stream, ai);
|
||||
}
|
||||
default:
|
||||
throw new Error(`Unsupported language: ${args.language}`);
|
||||
}
|
||||
} catch(err: any) {
|
||||
return {error: err?.message || err.toString()};
|
||||
@@ -104,9 +105,10 @@ export const JSTool: AiTool = {
|
||||
code: {type: 'string', description: 'CommonJS javascript', required: true}
|
||||
},
|
||||
fn: async (args: {code: string}) => {
|
||||
const console = consoleInterceptor(null);
|
||||
const resp = await Fn<any>({console}, args.code, true).catch((err: any) => console.output.error.push(err));
|
||||
return {...console.output, return: resp, stdout: undefined, stderr: undefined};
|
||||
console.log('executing js')
|
||||
const c = consoleInterceptor(null);
|
||||
const resp = await Fn<any>({console: c}, args.code, true).catch((err: any) => c.output.error.push(err));
|
||||
return {...c.output, return: resp, stdout: undefined, stderr: undefined};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user