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
JavaScript
;
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: {},
});
});
});