UNPKG

taskforce-aiagent

Version:

TaskForce is a modular, open-source, production-ready TypeScript agent framework for orchestrating AI agents, LLM-powered autonomous agents, task pipelines, dynamic toolchains, RAG workflows and memory/retrieval systems.

77 lines (76 loc) 2.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // @ts-nocheck const toolAdapter_1 = require("./toolAdapter"); // dosya yolunu projenize göre düzeltin const index_js_1 = require("../../index.js"); jest.mock("openai", () => { const mockOpenAI = jest.fn().mockImplementation(() => ({ chat: { completions: { create: jest .fn() .mockResolvedValue({ choices: [{ message: { content: "{}" } }] }), }, }, })); return { __esModule: true, default: mockOpenAI, OpenAI: mockOpenAI, }; }); class DummyTool extends index_js_1.Tool { constructor() { super(...arguments); this.id = "dummy-tool"; this.name = "Dummy Tool"; this.description = "A dummy tool for testing."; this.inputSchema = { type: "string", required: true }; this.parameters = { type: "object", properties: { exampleParam: { type: "string", description: "An example parameter", example: "example", }, }, required: ["exampleParam"], }; } async handler(input) { return "dummy output"; } } describe("toAIToolSchema", () => { it("returns undefined for unsupported providers", () => { const model = { provider: "unknown" }; const result = (0, toolAdapter_1.toAIToolSchema)(model, []); expect(result).toBeUndefined(); }); it("converts tools to OpenAI function schema with binding", () => { const model = { provider: "openai" }; const tool = new DummyTool(); const result = (0, toolAdapter_1.toAIToolSchema)(model, [tool]); expect(Array.isArray(result)).toBe(true); expect(result?.length).toBe(1); const schema = result[0]; expect(schema.type).toBe("function"); expect(schema.function.name).toBe(tool.id); expect(schema.function.description).toBe(tool.description); expect(schema.function.parameters).toEqual(tool.parameters); // __originalTool__ property'sinin orijinal tool örneğine referans verdiğini kontrol et expect(schema.__originalTool__).toBe(tool); }); it("provides default empty parameters object if none defined", () => { const model = { provider: "openai" }; const tool = new DummyTool(); delete tool.parameters; const result = (0, toolAdapter_1.toAIToolSchema)(model, [tool]); const schema = result[0]; expect(schema.function.parameters).toEqual({ type: "object", properties: {}, }); }); });