@mcpmesh/sdk 0.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/claude-handler.test.d.ts +7 -0
- package/dist/__tests__/claude-handler.test.d.ts.map +1 -0
- package/dist/__tests__/claude-handler.test.js +455 -0
- package/dist/__tests__/claude-handler.test.js.map +1 -0
- package/dist/__tests__/config.test.d.ts +7 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +156 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/errors.test.d.ts +7 -0
- package/dist/__tests__/errors.test.d.ts.map +1 -0
- package/dist/__tests__/errors.test.js +170 -0
- package/dist/__tests__/errors.test.js.map +1 -0
- package/dist/__tests__/generic-handler.test.d.ts +7 -0
- package/dist/__tests__/generic-handler.test.d.ts.map +1 -0
- package/dist/__tests__/generic-handler.test.js +243 -0
- package/dist/__tests__/generic-handler.test.js.map +1 -0
- package/dist/__tests__/llm-provider.test.d.ts +7 -0
- package/dist/__tests__/llm-provider.test.d.ts.map +1 -0
- package/dist/__tests__/llm-provider.test.js +217 -0
- package/dist/__tests__/llm-provider.test.js.map +1 -0
- package/dist/__tests__/openai-handler.test.d.ts +7 -0
- package/dist/__tests__/openai-handler.test.d.ts.map +1 -0
- package/dist/__tests__/openai-handler.test.js +359 -0
- package/dist/__tests__/openai-handler.test.js.map +1 -0
- package/dist/__tests__/provider-handler-registry.test.d.ts +9 -0
- package/dist/__tests__/provider-handler-registry.test.d.ts.map +1 -0
- package/dist/__tests__/provider-handler-registry.test.js +187 -0
- package/dist/__tests__/provider-handler-registry.test.js.map +1 -0
- package/dist/__tests__/response-parser.test.d.ts +7 -0
- package/dist/__tests__/response-parser.test.d.ts.map +1 -0
- package/dist/__tests__/response-parser.test.js +360 -0
- package/dist/__tests__/response-parser.test.js.map +1 -0
- package/dist/__tests__/route.test.d.ts +7 -0
- package/dist/__tests__/route.test.d.ts.map +1 -0
- package/dist/__tests__/route.test.js +281 -0
- package/dist/__tests__/route.test.js.map +1 -0
- package/dist/__tests__/sse.test.d.ts +7 -0
- package/dist/__tests__/sse.test.d.ts.map +1 -0
- package/dist/__tests__/sse.test.js +172 -0
- package/dist/__tests__/sse.test.js.map +1 -0
- package/dist/__tests__/template.test.d.ts +7 -0
- package/dist/__tests__/template.test.d.ts.map +1 -0
- package/dist/__tests__/template.test.js +176 -0
- package/dist/__tests__/template.test.js.map +1 -0
- package/dist/__tests__/tracing.test.d.ts +7 -0
- package/dist/__tests__/tracing.test.d.ts.map +1 -0
- package/dist/__tests__/tracing.test.js +264 -0
- package/dist/__tests__/tracing.test.js.map +1 -0
- package/dist/agent.d.ts +165 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +626 -0
- package/dist/agent.js.map +1 -0
- package/dist/api-runtime.d.ts +166 -0
- package/dist/api-runtime.d.ts.map +1 -0
- package/dist/api-runtime.js +459 -0
- package/dist/api-runtime.js.map +1 -0
- package/dist/config.d.ts +31 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +60 -0
- package/dist/config.js.map +1 -0
- package/dist/debug.d.ts +47 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +86 -0
- package/dist/debug.js.map +1 -0
- package/dist/errors.d.ts +99 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +110 -0
- package/dist/errors.js.map +1 -0
- package/dist/express.d.ts +146 -0
- package/dist/express.d.ts.map +1 -0
- package/dist/express.js +371 -0
- package/dist/express.js.map +1 -0
- package/dist/index.d.ts +96 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -0
- package/dist/index.js.map +1 -0
- package/dist/llm-agent.d.ts +193 -0
- package/dist/llm-agent.d.ts.map +1 -0
- package/dist/llm-agent.js +634 -0
- package/dist/llm-agent.js.map +1 -0
- package/dist/llm-provider.d.ts +323 -0
- package/dist/llm-provider.d.ts.map +1 -0
- package/dist/llm-provider.js +446 -0
- package/dist/llm-provider.js.map +1 -0
- package/dist/llm.d.ts +194 -0
- package/dist/llm.d.ts.map +1 -0
- package/dist/llm.js +304 -0
- package/dist/llm.js.map +1 -0
- package/dist/provider-handlers/claude-handler.d.ts +98 -0
- package/dist/provider-handlers/claude-handler.d.ts.map +1 -0
- package/dist/provider-handlers/claude-handler.js +268 -0
- package/dist/provider-handlers/claude-handler.js.map +1 -0
- package/dist/provider-handlers/gemini-handler.d.ts +82 -0
- package/dist/provider-handlers/gemini-handler.d.ts.map +1 -0
- package/dist/provider-handlers/gemini-handler.js +152 -0
- package/dist/provider-handlers/gemini-handler.js.map +1 -0
- package/dist/provider-handlers/generic-handler.d.ts +78 -0
- package/dist/provider-handlers/generic-handler.d.ts.map +1 -0
- package/dist/provider-handlers/generic-handler.js +152 -0
- package/dist/provider-handlers/generic-handler.js.map +1 -0
- package/dist/provider-handlers/index.d.ts +29 -0
- package/dist/provider-handlers/index.d.ts.map +1 -0
- package/dist/provider-handlers/index.js +32 -0
- package/dist/provider-handlers/index.js.map +1 -0
- package/dist/provider-handlers/openai-handler.d.ts +86 -0
- package/dist/provider-handlers/openai-handler.d.ts.map +1 -0
- package/dist/provider-handlers/openai-handler.js +160 -0
- package/dist/provider-handlers/openai-handler.js.map +1 -0
- package/dist/provider-handlers/provider-handler-registry.d.ts +124 -0
- package/dist/provider-handlers/provider-handler-registry.d.ts.map +1 -0
- package/dist/provider-handlers/provider-handler-registry.js +180 -0
- package/dist/provider-handlers/provider-handler-registry.js.map +1 -0
- package/dist/provider-handlers/provider-handler.d.ts +245 -0
- package/dist/provider-handlers/provider-handler.d.ts.map +1 -0
- package/dist/provider-handlers/provider-handler.js +238 -0
- package/dist/provider-handlers/provider-handler.js.map +1 -0
- package/dist/proxy.d.ts +44 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +324 -0
- package/dist/proxy.js.map +1 -0
- package/dist/response-parser.d.ts +103 -0
- package/dist/response-parser.d.ts.map +1 -0
- package/dist/response-parser.js +232 -0
- package/dist/response-parser.js.map +1 -0
- package/dist/route.d.ts +185 -0
- package/dist/route.d.ts.map +1 -0
- package/dist/route.js +310 -0
- package/dist/route.js.map +1 -0
- package/dist/sse.d.ts +45 -0
- package/dist/sse.d.ts.map +1 -0
- package/dist/sse.js +77 -0
- package/dist/sse.js.map +1 -0
- package/dist/template.d.ts +86 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +206 -0
- package/dist/template.js.map +1 -0
- package/dist/tracing.d.ts +88 -0
- package/dist/tracing.d.ts.map +1 -0
- package/dist/tracing.js +193 -0
- package/dist/tracing.js.map +1 -0
- package/dist/types.d.ts +618 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/errors.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for errors.ts
|
|
3
|
+
*
|
|
4
|
+
* Tests typed error classes for mesh operations.
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect } from "vitest";
|
|
7
|
+
import { MaxIterationsError, ToolExecutionError, LLMAPIError, ResponseParseError, ProviderUnavailableError, } from "../errors.js";
|
|
8
|
+
describe("MaxIterationsError", () => {
|
|
9
|
+
it("should create error with iteration count", () => {
|
|
10
|
+
const error = new MaxIterationsError(10, { lastText: "thinking..." });
|
|
11
|
+
expect(error).toBeInstanceOf(Error);
|
|
12
|
+
expect(error).toBeInstanceOf(MaxIterationsError);
|
|
13
|
+
expect(error.name).toBe("MaxIterationsError");
|
|
14
|
+
expect(error.iterations).toBe(10);
|
|
15
|
+
expect(error.lastResponse).toEqual({ lastText: "thinking..." });
|
|
16
|
+
expect(error.message).toContain("10");
|
|
17
|
+
});
|
|
18
|
+
it("should include message history when provided", () => {
|
|
19
|
+
const messages = [
|
|
20
|
+
{ role: "user", content: "Hello" },
|
|
21
|
+
{ role: "assistant", content: "Hi!" },
|
|
22
|
+
];
|
|
23
|
+
const error = new MaxIterationsError(5, null, messages);
|
|
24
|
+
expect(error.messages).toEqual(messages);
|
|
25
|
+
});
|
|
26
|
+
it("should handle undefined messages", () => {
|
|
27
|
+
const error = new MaxIterationsError(3, "response");
|
|
28
|
+
expect(error.messages).toBeUndefined();
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
describe("ToolExecutionError", () => {
|
|
32
|
+
it("should create error with tool name and cause", () => {
|
|
33
|
+
const cause = new Error("Connection timeout");
|
|
34
|
+
const error = new ToolExecutionError("get_weather", cause);
|
|
35
|
+
expect(error).toBeInstanceOf(Error);
|
|
36
|
+
expect(error).toBeInstanceOf(ToolExecutionError);
|
|
37
|
+
expect(error.name).toBe("ToolExecutionError");
|
|
38
|
+
expect(error.toolName).toBe("get_weather");
|
|
39
|
+
expect(error.cause).toBe(cause);
|
|
40
|
+
expect(error.message).toContain("get_weather");
|
|
41
|
+
expect(error.message).toContain("Connection timeout");
|
|
42
|
+
});
|
|
43
|
+
it("should include arguments when provided", () => {
|
|
44
|
+
const cause = new Error("Invalid input");
|
|
45
|
+
const args = { city: "NYC", units: "celsius" };
|
|
46
|
+
const error = new ToolExecutionError("get_weather", cause, args);
|
|
47
|
+
expect(error.args).toEqual(args);
|
|
48
|
+
});
|
|
49
|
+
it("should handle error without args", () => {
|
|
50
|
+
const cause = new Error("Failed");
|
|
51
|
+
const error = new ToolExecutionError("process_data", cause);
|
|
52
|
+
expect(error.args).toBeUndefined();
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe("LLMAPIError", () => {
|
|
56
|
+
it("should create error with status code and body", () => {
|
|
57
|
+
const error = new LLMAPIError(500, "Internal server error");
|
|
58
|
+
expect(error).toBeInstanceOf(Error);
|
|
59
|
+
expect(error).toBeInstanceOf(LLMAPIError);
|
|
60
|
+
expect(error.name).toBe("LLMAPIError");
|
|
61
|
+
expect(error.statusCode).toBe(500);
|
|
62
|
+
expect(error.body).toBe("Internal server error");
|
|
63
|
+
expect(error.message).toContain("500");
|
|
64
|
+
});
|
|
65
|
+
it("should include provider when specified", () => {
|
|
66
|
+
const error = new LLMAPIError(429, "Rate limit exceeded", "openai");
|
|
67
|
+
expect(error.provider).toBe("openai");
|
|
68
|
+
});
|
|
69
|
+
it("should handle various HTTP status codes", () => {
|
|
70
|
+
const badRequest = new LLMAPIError(400, "Bad request");
|
|
71
|
+
expect(badRequest.statusCode).toBe(400);
|
|
72
|
+
const unauthorized = new LLMAPIError(401, "Unauthorized");
|
|
73
|
+
expect(unauthorized.statusCode).toBe(401);
|
|
74
|
+
const rateLimit = new LLMAPIError(429, "Too many requests");
|
|
75
|
+
expect(rateLimit.statusCode).toBe(429);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe("ResponseParseError", () => {
|
|
79
|
+
it("should create error with message and raw content", () => {
|
|
80
|
+
const error = new ResponseParseError("Invalid JSON", '{"incomplete": ');
|
|
81
|
+
expect(error).toBeInstanceOf(Error);
|
|
82
|
+
expect(error).toBeInstanceOf(ResponseParseError);
|
|
83
|
+
expect(error.name).toBe("ResponseParseError");
|
|
84
|
+
expect(error.message).toBe("Invalid JSON");
|
|
85
|
+
expect(error.rawContent).toBe('{"incomplete": ');
|
|
86
|
+
});
|
|
87
|
+
it("should include Zod error when provided", () => {
|
|
88
|
+
const zodError = { issues: [{ path: ["name"], message: "Required" }] };
|
|
89
|
+
const error = new ResponseParseError("Schema validation failed", '{"age": 30}', zodError);
|
|
90
|
+
expect(error.zodError).toBe(zodError);
|
|
91
|
+
});
|
|
92
|
+
it("should include expected schema when provided", () => {
|
|
93
|
+
const schema = { type: "object", properties: { name: { type: "string" } } };
|
|
94
|
+
const error = new ResponseParseError("Missing required field", "{}", undefined, schema);
|
|
95
|
+
expect(error.expectedSchema).toEqual(schema);
|
|
96
|
+
});
|
|
97
|
+
it("should handle all optional parameters", () => {
|
|
98
|
+
const zodError = { issues: [] };
|
|
99
|
+
const schema = { type: "string" };
|
|
100
|
+
const error = new ResponseParseError("Parse error", "raw content", zodError, schema);
|
|
101
|
+
expect(error.rawContent).toBe("raw content");
|
|
102
|
+
expect(error.zodError).toBe(zodError);
|
|
103
|
+
expect(error.expectedSchema).toBe(schema);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe("ProviderUnavailableError", () => {
|
|
107
|
+
it("should create error with provider spec", () => {
|
|
108
|
+
const spec = { capability: "llm", tags: ["claude"] };
|
|
109
|
+
const error = new ProviderUnavailableError(spec);
|
|
110
|
+
expect(error).toBeInstanceOf(Error);
|
|
111
|
+
expect(error).toBeInstanceOf(ProviderUnavailableError);
|
|
112
|
+
expect(error.name).toBe("ProviderUnavailableError");
|
|
113
|
+
expect(error.providerSpec).toEqual(spec);
|
|
114
|
+
expect(error.message).toContain("LLM provider unavailable");
|
|
115
|
+
expect(error.message).toContain(JSON.stringify(spec));
|
|
116
|
+
});
|
|
117
|
+
it("should include reason when provided", () => {
|
|
118
|
+
const spec = { capability: "llm" };
|
|
119
|
+
const error = new ProviderUnavailableError(spec, "No providers registered");
|
|
120
|
+
expect(error.reason).toBe("No providers registered");
|
|
121
|
+
expect(error.message).toContain("No providers registered");
|
|
122
|
+
});
|
|
123
|
+
it("should handle string provider spec", () => {
|
|
124
|
+
const error = new ProviderUnavailableError("llm");
|
|
125
|
+
expect(error.providerSpec).toBe("llm");
|
|
126
|
+
expect(error.message).toContain('"llm"');
|
|
127
|
+
});
|
|
128
|
+
it("should handle complex provider spec", () => {
|
|
129
|
+
const spec = {
|
|
130
|
+
capability: "llm",
|
|
131
|
+
tags: ["claude", "fast"],
|
|
132
|
+
version: ">=1.0.0",
|
|
133
|
+
};
|
|
134
|
+
const error = new ProviderUnavailableError(spec, "Version mismatch");
|
|
135
|
+
expect(error.providerSpec).toEqual(spec);
|
|
136
|
+
expect(error.reason).toBe("Version mismatch");
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe("Error inheritance", () => {
|
|
140
|
+
it("all custom errors should be instanceof Error", () => {
|
|
141
|
+
expect(new MaxIterationsError(1, null)).toBeInstanceOf(Error);
|
|
142
|
+
expect(new ToolExecutionError("test", new Error())).toBeInstanceOf(Error);
|
|
143
|
+
expect(new LLMAPIError(500, "error")).toBeInstanceOf(Error);
|
|
144
|
+
expect(new ResponseParseError("msg", "content")).toBeInstanceOf(Error);
|
|
145
|
+
expect(new ProviderUnavailableError({})).toBeInstanceOf(Error);
|
|
146
|
+
});
|
|
147
|
+
it("errors should be catchable in try/catch", () => {
|
|
148
|
+
try {
|
|
149
|
+
throw new MaxIterationsError(5, "response");
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
expect(err).toBeInstanceOf(MaxIterationsError);
|
|
153
|
+
expect(err).toBeInstanceOf(Error);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
it("errors should work with error type guards", () => {
|
|
157
|
+
const errors = [
|
|
158
|
+
new MaxIterationsError(1, null),
|
|
159
|
+
new ToolExecutionError("test", new Error("cause")),
|
|
160
|
+
new LLMAPIError(400, "bad request"),
|
|
161
|
+
new ResponseParseError("parse failed", "raw"),
|
|
162
|
+
new ProviderUnavailableError("llm"),
|
|
163
|
+
];
|
|
164
|
+
for (const error of errors) {
|
|
165
|
+
expect(error.name).toBeDefined();
|
|
166
|
+
expect(error.message).toBeDefined();
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
//# sourceMappingURL=errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/__tests__/errors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-handler.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/generic-handler.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for generic-handler.ts
|
|
3
|
+
*
|
|
4
|
+
* Tests the GenericHandler fallback provider for unknown vendors.
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
7
|
+
import { GenericHandler } from "../provider-handlers/generic-handler.js";
|
|
8
|
+
describe("GenericHandler", () => {
|
|
9
|
+
let handler;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
handler = new GenericHandler();
|
|
12
|
+
});
|
|
13
|
+
describe("vendor", () => {
|
|
14
|
+
it("should default to 'unknown' vendor", () => {
|
|
15
|
+
expect(handler.vendor).toBe("unknown");
|
|
16
|
+
});
|
|
17
|
+
it("should accept custom vendor name in constructor", () => {
|
|
18
|
+
const customHandler = new GenericHandler("custom-vendor");
|
|
19
|
+
expect(customHandler.vendor).toBe("custom-vendor");
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe("getCapabilities", () => {
|
|
23
|
+
it("should return conservative capabilities", () => {
|
|
24
|
+
const capabilities = handler.getCapabilities();
|
|
25
|
+
// Conservative approach for unknown vendors
|
|
26
|
+
expect(capabilities.nativeToolCalling).toBe(true);
|
|
27
|
+
expect(capabilities.structuredOutput).toBe(false);
|
|
28
|
+
expect(capabilities.streaming).toBe(false);
|
|
29
|
+
expect(capabilities.vision).toBe(false);
|
|
30
|
+
expect(capabilities.jsonMode).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe("determineOutputMode", () => {
|
|
34
|
+
it("should return 'text' when no schema provided", () => {
|
|
35
|
+
const mode = handler.determineOutputMode(null);
|
|
36
|
+
expect(mode).toBe("text");
|
|
37
|
+
});
|
|
38
|
+
it("should return override mode when specified", () => {
|
|
39
|
+
const schema = {
|
|
40
|
+
name: "Test",
|
|
41
|
+
schema: { type: "object", properties: { a: { type: "string" } } },
|
|
42
|
+
};
|
|
43
|
+
expect(handler.determineOutputMode(schema, "strict")).toBe("strict");
|
|
44
|
+
expect(handler.determineOutputMode(schema, "text")).toBe("text");
|
|
45
|
+
});
|
|
46
|
+
it("should always return 'hint' for schemas (conservative approach)", () => {
|
|
47
|
+
// Generic handler uses hint mode since we can't assume structured output support
|
|
48
|
+
const simpleSchema = {
|
|
49
|
+
name: "Simple",
|
|
50
|
+
schema: { type: "object", properties: { name: { type: "string" } } },
|
|
51
|
+
};
|
|
52
|
+
const mode = handler.determineOutputMode(simpleSchema);
|
|
53
|
+
expect(mode).toBe("hint");
|
|
54
|
+
});
|
|
55
|
+
it("should return 'hint' even for complex schemas", () => {
|
|
56
|
+
const complexSchema = {
|
|
57
|
+
name: "Complex",
|
|
58
|
+
schema: {
|
|
59
|
+
type: "object",
|
|
60
|
+
properties: {
|
|
61
|
+
a: { type: "string" },
|
|
62
|
+
b: { type: "string" },
|
|
63
|
+
c: { type: "string" },
|
|
64
|
+
d: { type: "string" },
|
|
65
|
+
e: { type: "string" },
|
|
66
|
+
f: { type: "string" },
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
const mode = handler.determineOutputMode(complexSchema);
|
|
71
|
+
// Generic handler always uses hint, not strict
|
|
72
|
+
expect(mode).toBe("hint");
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe("prepareRequest", () => {
|
|
76
|
+
it("should pass messages through unchanged", () => {
|
|
77
|
+
const messages = [
|
|
78
|
+
{ role: "system", content: "You are helpful." },
|
|
79
|
+
{ role: "user", content: "Hello" },
|
|
80
|
+
{ role: "assistant", content: "Hi!" },
|
|
81
|
+
];
|
|
82
|
+
const request = handler.prepareRequest(messages, null, null);
|
|
83
|
+
expect(request.messages).toHaveLength(3);
|
|
84
|
+
expect(request.messages[0].content).toBe("You are helpful.");
|
|
85
|
+
expect(request.messages[1].content).toBe("Hello");
|
|
86
|
+
expect(request.messages[2].content).toBe("Hi!");
|
|
87
|
+
});
|
|
88
|
+
it("should NOT convert tool_calls (unlike Claude/OpenAI handlers)", () => {
|
|
89
|
+
const messages = [
|
|
90
|
+
{
|
|
91
|
+
role: "assistant",
|
|
92
|
+
content: "",
|
|
93
|
+
tool_calls: [
|
|
94
|
+
{
|
|
95
|
+
id: "call_123",
|
|
96
|
+
type: "function",
|
|
97
|
+
function: { name: "test", arguments: "{}" },
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
const request = handler.prepareRequest(messages, null, null);
|
|
103
|
+
// Generic handler passes messages as-is (Vercel AI SDK normalizes)
|
|
104
|
+
expect(request.messages[0].tool_calls).toEqual(messages[0].tool_calls);
|
|
105
|
+
});
|
|
106
|
+
it("should include tools when provided", () => {
|
|
107
|
+
const messages = [{ role: "user", content: "Hello" }];
|
|
108
|
+
const tools = [
|
|
109
|
+
{ type: "function", function: { name: "test", description: "Test tool" } },
|
|
110
|
+
];
|
|
111
|
+
const request = handler.prepareRequest(messages, tools, null);
|
|
112
|
+
expect(request.tools).toEqual(tools);
|
|
113
|
+
});
|
|
114
|
+
it("should NOT include response_format (not all vendors support it)", () => {
|
|
115
|
+
const messages = [{ role: "user", content: "Hello" }];
|
|
116
|
+
const schema = {
|
|
117
|
+
name: "Test",
|
|
118
|
+
schema: { type: "object", properties: { value: { type: "string" } } },
|
|
119
|
+
};
|
|
120
|
+
const request = handler.prepareRequest(messages, null, schema);
|
|
121
|
+
// Generic handler relies on prompt-based instructions, not response_format
|
|
122
|
+
expect(request.responseFormat).toBeUndefined();
|
|
123
|
+
});
|
|
124
|
+
it("should pass through temperature, maxOutputTokens, and topP", () => {
|
|
125
|
+
const messages = [{ role: "user", content: "Hello" }];
|
|
126
|
+
const request = handler.prepareRequest(messages, null, null, {
|
|
127
|
+
temperature: 0.8,
|
|
128
|
+
maxOutputTokens: 500,
|
|
129
|
+
topP: 0.9,
|
|
130
|
+
});
|
|
131
|
+
expect(request.temperature).toBe(0.8);
|
|
132
|
+
expect(request.maxOutputTokens).toBe(500);
|
|
133
|
+
expect(request.topP).toBe(0.9);
|
|
134
|
+
});
|
|
135
|
+
it("should pass through additional options", () => {
|
|
136
|
+
const messages = [{ role: "user", content: "Hello" }];
|
|
137
|
+
const request = handler.prepareRequest(messages, null, null, {
|
|
138
|
+
customOption: "value",
|
|
139
|
+
anotherOption: 123,
|
|
140
|
+
});
|
|
141
|
+
expect(request.customOption).toBe("value");
|
|
142
|
+
expect(request.anotherOption).toBe(123);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
describe("formatSystemPrompt", () => {
|
|
146
|
+
it("should return base prompt as-is when no tools or schema", () => {
|
|
147
|
+
const basePrompt = "You are a helpful assistant.";
|
|
148
|
+
const result = handler.formatSystemPrompt(basePrompt, null, null);
|
|
149
|
+
expect(result).toBe(basePrompt);
|
|
150
|
+
});
|
|
151
|
+
it("should add tool calling rules when tools provided", () => {
|
|
152
|
+
const basePrompt = "You are a helpful assistant.";
|
|
153
|
+
const tools = [
|
|
154
|
+
{ type: "function", function: { name: "test" } },
|
|
155
|
+
];
|
|
156
|
+
const result = handler.formatSystemPrompt(basePrompt, tools, null);
|
|
157
|
+
expect(result).toContain("TOOL CALLING RULES:");
|
|
158
|
+
expect(result).toContain("Make one tool call at a time");
|
|
159
|
+
expect(result).toContain("standard JSON function calling format");
|
|
160
|
+
});
|
|
161
|
+
it("should add explicit JSON schema instructions when schema provided", () => {
|
|
162
|
+
const basePrompt = "You are a helpful assistant.";
|
|
163
|
+
const schema = {
|
|
164
|
+
name: "Response",
|
|
165
|
+
schema: {
|
|
166
|
+
type: "object",
|
|
167
|
+
properties: {
|
|
168
|
+
message: { type: "string" },
|
|
169
|
+
count: { type: "number" },
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
const result = handler.formatSystemPrompt(basePrompt, null, schema);
|
|
174
|
+
// Generic handler adds full schema to prompt (can't rely on response_format)
|
|
175
|
+
expect(result).toContain("IMPORTANT: Return your final response as valid JSON");
|
|
176
|
+
expect(result).toContain('"type": "object"');
|
|
177
|
+
expect(result).toContain('"message"');
|
|
178
|
+
expect(result).toContain('"count"');
|
|
179
|
+
expect(result).toContain("Return ONLY the JSON object");
|
|
180
|
+
expect(result).toContain("no markdown");
|
|
181
|
+
});
|
|
182
|
+
it("should not add JSON instructions in text mode", () => {
|
|
183
|
+
const basePrompt = "You are a helpful assistant.";
|
|
184
|
+
const schema = {
|
|
185
|
+
name: "Unused",
|
|
186
|
+
schema: { type: "object", properties: {} },
|
|
187
|
+
};
|
|
188
|
+
const result = handler.formatSystemPrompt(basePrompt, null, schema, "text");
|
|
189
|
+
expect(result).toBe(basePrompt);
|
|
190
|
+
expect(result).not.toContain("JSON");
|
|
191
|
+
});
|
|
192
|
+
it("should combine tool rules and JSON schema when both provided", () => {
|
|
193
|
+
const basePrompt = "You are a helpful assistant.";
|
|
194
|
+
const tools = [
|
|
195
|
+
{ type: "function", function: { name: "get_data" } },
|
|
196
|
+
];
|
|
197
|
+
const schema = {
|
|
198
|
+
name: "Output",
|
|
199
|
+
schema: { type: "object", properties: { result: { type: "string" } } },
|
|
200
|
+
};
|
|
201
|
+
const result = handler.formatSystemPrompt(basePrompt, tools, schema);
|
|
202
|
+
expect(result).toContain("TOOL CALLING RULES:");
|
|
203
|
+
expect(result).toContain("Return your final response as valid JSON");
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
describe("fallback behavior", () => {
|
|
207
|
+
it("should work with any vendor name", () => {
|
|
208
|
+
const vendors = ["cohere", "together", "replicate", "ollama", "local"];
|
|
209
|
+
for (const vendor of vendors) {
|
|
210
|
+
const h = new GenericHandler(vendor);
|
|
211
|
+
expect(h.vendor).toBe(vendor);
|
|
212
|
+
const caps = h.getCapabilities();
|
|
213
|
+
// All should have same conservative capabilities
|
|
214
|
+
expect(caps.structuredOutput).toBe(false);
|
|
215
|
+
expect(caps.jsonMode).toBe(false);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
it("should produce usable prompts for any model", () => {
|
|
219
|
+
const basePrompt = "You are a coding assistant.";
|
|
220
|
+
const tools = [
|
|
221
|
+
{ type: "function", function: { name: "run_code", description: "Execute code" } },
|
|
222
|
+
];
|
|
223
|
+
const schema = {
|
|
224
|
+
name: "CodeResult",
|
|
225
|
+
schema: {
|
|
226
|
+
type: "object",
|
|
227
|
+
properties: {
|
|
228
|
+
success: { type: "boolean" },
|
|
229
|
+
output: { type: "string" },
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
const prompt = handler.formatSystemPrompt(basePrompt, tools, schema);
|
|
234
|
+
// Prompt should be comprehensive enough for any model
|
|
235
|
+
expect(prompt).toContain("You are a coding assistant.");
|
|
236
|
+
expect(prompt).toContain("TOOL CALLING RULES:");
|
|
237
|
+
expect(prompt).toContain("JSON");
|
|
238
|
+
expect(prompt).toContain("success");
|
|
239
|
+
expect(prompt).toContain("output");
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
//# sourceMappingURL=generic-handler.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-handler.test.js","sourceRoot":"","sources":["../../src/__tests__/generic-handler.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-provider.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/llm-provider.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|