UNPKG

@nomyx/assistant

Version:

A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)

56 lines (55 loc) 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertToolSchema = convertToolSchema; exports.convertToolCall = convertToolCall; exports.convertMessages = convertMessages; exports.extractToolCalls = extractToolCalls; function convertToolSchema(schema) { return { name: schema.name, description: schema.description, input_schema: { type: 'object', properties: Object.entries(schema.parameters.properties).reduce((acc, [key, value]) => { acc[key] = { type: value.type, ...(value.enum ? { enum: value.enum } : {}) }; if (value.description) { acc[key].description = value.description; } return acc; }, {}), required: schema.parameters.required || [] } }; } function convertToolCall(toolUse) { return { name: toolUse.name, arguments: toolUse.input }; } function convertMessages(messages) { return messages.map(msg => { if (msg.role === 'function') { // Need to use assistant because Anthropic doesn't have a 'system' role return { role: 'assistant', content: `Function ${msg.name} returned: ${msg.content}` }; } return { role: msg.role, content: msg.content }; }); } function extractToolCalls(content) { if (typeof content === 'string') { return []; // No tool calls in string content } return content .filter((item) => item.type === 'tool_use') .map(item => convertToolCall(item)); }