@mcpmesh/sdk 0.8.1 → 0.9.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.js +17 -71
- package/dist/__tests__/claude-handler.test.js.map +1 -1
- package/dist/__tests__/llm-provider.test.js +3 -3
- package/dist/__tests__/llm-provider.test.js.map +1 -1
- package/dist/__tests__/provider-handler-registry.test.js +6 -6
- package/dist/__tests__/provider-handler-registry.test.js.map +1 -1
- package/dist/llm-agent.d.ts +2 -2
- package/dist/llm-agent.d.ts.map +1 -1
- package/dist/llm-agent.js +13 -10
- package/dist/llm-agent.js.map +1 -1
- package/dist/llm-provider.d.ts.map +1 -1
- package/dist/llm-provider.js +41 -14
- package/dist/llm-provider.js.map +1 -1
- package/dist/provider-handlers/claude-handler.d.ts +16 -31
- package/dist/provider-handlers/claude-handler.d.ts.map +1 -1
- package/dist/provider-handlers/claude-handler.js +34 -115
- package/dist/provider-handlers/claude-handler.js.map +1 -1
- package/dist/provider-handlers/gemini-handler.d.ts +12 -9
- package/dist/provider-handlers/gemini-handler.d.ts.map +1 -1
- package/dist/provider-handlers/gemini-handler.js +68 -17
- package/dist/provider-handlers/gemini-handler.js.map +1 -1
- package/dist/provider-handlers/index.d.ts +1 -1
- package/dist/provider-handlers/index.d.ts.map +1 -1
- package/dist/provider-handlers/index.js +1 -1
- package/dist/provider-handlers/index.js.map +1 -1
- package/dist/provider-handlers/openai-handler.d.ts +7 -10
- package/dist/provider-handlers/openai-handler.d.ts.map +1 -1
- package/dist/provider-handlers/openai-handler.js +61 -19
- package/dist/provider-handlers/openai-handler.js.map +1 -1
- package/dist/provider-handlers/provider-handler.d.ts +11 -0
- package/dist/provider-handlers/provider-handler.d.ts.map +1 -1
- package/dist/provider-handlers/provider-handler.js +106 -2
- package/dist/provider-handlers/provider-handler.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/llm-provider.js
CHANGED
|
@@ -173,7 +173,7 @@ function convertToolCalls(toolCalls) {
|
|
|
173
173
|
type: "function",
|
|
174
174
|
function: {
|
|
175
175
|
name: tc.toolName,
|
|
176
|
-
arguments: JSON.stringify(tc.
|
|
176
|
+
arguments: JSON.stringify(tc.input ?? {}), // Use 'input' for AI SDK v6
|
|
177
177
|
},
|
|
178
178
|
}));
|
|
179
179
|
}
|
|
@@ -310,18 +310,39 @@ export function llmProvider(config) {
|
|
|
310
310
|
// Get vendor-specific handler for optimizations
|
|
311
311
|
const handler = ProviderHandlerRegistry.getHandler(vendor);
|
|
312
312
|
debug(`Using provider handler: ${handler.constructor.name} for vendor: ${vendor}`);
|
|
313
|
+
// Determine output mode early (needed for system prompt formatting)
|
|
314
|
+
// When tools are present, we can't use generateObject() (it doesn't support tools),
|
|
315
|
+
// so we must fall back to "hint" mode to add JSON instructions to the system prompt.
|
|
316
|
+
// This ensures the LLM knows to return structured JSON even when using generateText().
|
|
317
|
+
const hasTools = request.tools && request.tools.length > 0;
|
|
318
|
+
let outputMode = handler.determineOutputMode(outputSchemaObj);
|
|
319
|
+
if (outputMode === "strict" && hasTools && outputSchemaObj) {
|
|
320
|
+
debug(`Forcing hint mode: tools present (${request.tools?.length}), can't use generateObject`);
|
|
321
|
+
outputMode = "hint";
|
|
322
|
+
}
|
|
323
|
+
debug(`Output mode for system prompt: ${outputMode}`);
|
|
324
|
+
// Format system prompt with vendor-specific instructions (JSON format, tool rules, etc.)
|
|
325
|
+
// This is critical for structured output - handlers add JSON instructions in "hint" mode
|
|
326
|
+
// and brief notes in "strict" mode. Without this, LLMs may return plain text.
|
|
327
|
+
const formattedMessages = request.messages.map(msg => {
|
|
328
|
+
if (msg.role === "system" && msg.content) {
|
|
329
|
+
const formattedContent = handler.formatSystemPrompt(msg.content, request.tools ?? null, // ToolSchema[] format (OpenAI function calling)
|
|
330
|
+
outputSchemaObj, outputMode);
|
|
331
|
+
debug(`Formatted system prompt (${outputMode} mode): ${formattedContent.substring(0, 200)}...`);
|
|
332
|
+
return { ...msg, content: formattedContent };
|
|
333
|
+
}
|
|
334
|
+
return msg;
|
|
335
|
+
});
|
|
313
336
|
// Import generateText from ai package
|
|
314
337
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
315
338
|
const aiModule = await import("ai");
|
|
316
339
|
const generateText = aiModule.generateText;
|
|
317
|
-
// Convert tools to Vercel AI SDK format
|
|
318
|
-
//
|
|
319
|
-
|
|
340
|
+
// Convert tools to Vercel AI SDK format using the tool() helper
|
|
341
|
+
// Import jsonSchema and tool from ai package for proper schema handling
|
|
342
|
+
const { jsonSchema, tool: aiTool } = aiModule;
|
|
320
343
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
321
344
|
let vercelTools;
|
|
322
345
|
if (request.tools && request.tools.length > 0) {
|
|
323
|
-
// Import jsonSchema helper from ai package
|
|
324
|
-
const { jsonSchema } = aiModule;
|
|
325
346
|
vercelTools = {};
|
|
326
347
|
for (const tool of request.tools) {
|
|
327
348
|
// Get the raw schema parameters
|
|
@@ -335,19 +356,23 @@ export function llmProvider(config) {
|
|
|
335
356
|
type: "object", // Ensure type is always present
|
|
336
357
|
...schemaWithoutMeta,
|
|
337
358
|
};
|
|
338
|
-
debug(`Tool '${tool.function.name}'
|
|
339
|
-
|
|
359
|
+
debug(`Tool '${tool.function.name}' cleanSchema: ${JSON.stringify(cleanSchema, null, 2)}`);
|
|
360
|
+
// Use AI SDK's tool() helper with jsonSchema() for proper schema handling
|
|
361
|
+
vercelTools[tool.function.name] = aiTool({
|
|
340
362
|
description: tool.function.description ?? "",
|
|
341
363
|
inputSchema: jsonSchema(cleanSchema),
|
|
342
|
-
|
|
364
|
+
// No execute - we're in provider mode, consumer handles execution
|
|
365
|
+
});
|
|
366
|
+
debug(`Tool '${tool.function.name}' vercelTool created with aiTool() helper`);
|
|
343
367
|
}
|
|
344
368
|
}
|
|
345
369
|
// Apply vendor-specific request preparation (e.g., Claude prompt caching)
|
|
346
370
|
// The handler may transform messages or add vendor-specific options
|
|
347
|
-
//
|
|
348
|
-
const preparedRequest = handler.prepareRequest(
|
|
349
|
-
outputSchemaObj, // Pass output schema for
|
|
371
|
+
// Use formattedMessages which have the system prompt already formatted by the handler
|
|
372
|
+
const preparedRequest = handler.prepareRequest(formattedMessages, null, // tools handled separately for Vercel AI SDK
|
|
373
|
+
outputSchemaObj, // Pass output schema for additional vendor-specific options
|
|
350
374
|
{
|
|
375
|
+
outputMode, // Pass output mode determined earlier
|
|
351
376
|
temperature: temperature ?? modelParams.temperature,
|
|
352
377
|
maxOutputTokens: maxTokens ?? modelParams.max_tokens,
|
|
353
378
|
topP: topP ?? modelParams.top_p,
|
|
@@ -389,8 +414,10 @@ export function llmProvider(config) {
|
|
|
389
414
|
// - "strict" mode: Use generateObject() for native structured output (OpenAI/Gemini)
|
|
390
415
|
// - "hint" mode: Use generateText() with prompt-based JSON instructions (Claude)
|
|
391
416
|
// - "text" mode: Use generateText() for plain text output
|
|
392
|
-
//
|
|
393
|
-
|
|
417
|
+
// NOTE: generateObject() doesn't support tools in Vercel AI SDK, so when tools are
|
|
418
|
+
// present we must use generateText(). The handler's formatSystemPrompt() adds JSON
|
|
419
|
+
// instructions to ensure the LLM returns structured output even via generateText().
|
|
420
|
+
// outputMode was determined earlier (before formatSystemPrompt call)
|
|
394
421
|
const useStructuredOutput = outputMode === "strict" && outputSchema && !vercelTools;
|
|
395
422
|
debug(`Output mode: ${outputMode}, useStructuredOutput: ${useStructuredOutput}`);
|
|
396
423
|
let response;
|
package/dist/llm-provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,20 +4,19 @@
|
|
|
4
4
|
* Optimized for Claude API (Claude 3.x, Sonnet, Opus, Haiku)
|
|
5
5
|
* using Anthropic's best practices for tool calling and JSON responses.
|
|
6
6
|
*
|
|
7
|
-
* Supports
|
|
8
|
-
* -
|
|
9
|
-
* - hint: Use prompt-based JSON instructions (medium speed, ~95% reliable)
|
|
7
|
+
* Supports two output modes (TEXT + HINT only):
|
|
8
|
+
* - hint: Use prompt-based JSON instructions with DECISION GUIDE (~95% reliable)
|
|
10
9
|
* - text: Plain text output for str return types (fastest)
|
|
11
10
|
*
|
|
11
|
+
* Native response_format (strict mode) is NOT used due to cross-runtime
|
|
12
|
+
* incompatibilities when tools are present, and grammar compilation overhead.
|
|
13
|
+
*
|
|
12
14
|
* Features:
|
|
13
15
|
* - Anti-XML tool calling instructions
|
|
14
|
-
* -
|
|
16
|
+
* - DECISION GUIDE for tool vs. direct JSON response decisions
|
|
15
17
|
*
|
|
16
18
|
* Note: Prompt caching is not yet implemented for AI SDK v6.
|
|
17
19
|
* TODO: Re-enable via experimental_providerOptions when AI SDK v6 supports it.
|
|
18
|
-
*
|
|
19
|
-
* Based on Python's ClaudeHandler:
|
|
20
|
-
* src/runtime/python/_mcp_mesh/engine/provider_handlers/claude_handler.py
|
|
21
20
|
*/
|
|
22
21
|
import type { LlmMessage } from "../types.js";
|
|
23
22
|
import { type ProviderHandler, type VendorCapabilities, type ToolSchema, type OutputSchema, type PreparedRequest, type OutputMode } from "./provider-handler.js";
|
|
@@ -26,18 +25,18 @@ import { type ProviderHandler, type VendorCapabilities, type ToolSchema, type Ou
|
|
|
26
25
|
*
|
|
27
26
|
* Claude Characteristics:
|
|
28
27
|
* - Excellent at following detailed instructions
|
|
29
|
-
* - Native structured output via response_format (requires strict schema)
|
|
30
28
|
* - Native tool calling (via Anthropic messages API)
|
|
31
29
|
* - Performs best with anti-XML tool calling instructions
|
|
32
30
|
*
|
|
33
|
-
* Output Modes:
|
|
34
|
-
* -
|
|
35
|
-
* - hint: JSON schema in prompt (medium speed, usually valid JSON)
|
|
31
|
+
* Output Modes (TEXT + HINT only):
|
|
32
|
+
* - hint: JSON schema in prompt with DECISION GUIDE (~95% reliable)
|
|
36
33
|
* - text: Plain text output for str return types (fastest)
|
|
37
34
|
*
|
|
35
|
+
* Native response_format (strict mode) is not used. HINT mode with
|
|
36
|
+
* detailed prompt instructions provides sufficient reliability (~95%)
|
|
37
|
+
* without cross-runtime incompatibilities and grammar compilation overhead.
|
|
38
|
+
*
|
|
38
39
|
* Best Practices (from Anthropic docs):
|
|
39
|
-
* - Use response_format for guaranteed JSON schema compliance
|
|
40
|
-
* - Schema must have additionalProperties: false on all objects
|
|
41
40
|
* - Add anti-XML instructions to prevent <invoke> style tool calls
|
|
42
41
|
* - Use one tool call at a time for better reliability
|
|
43
42
|
*/
|
|
@@ -46,9 +45,8 @@ export declare class ClaudeHandler implements ProviderHandler {
|
|
|
46
45
|
/**
|
|
47
46
|
* Prepare request parameters for Claude API with output mode support.
|
|
48
47
|
*
|
|
49
|
-
* Output Mode Strategy:
|
|
50
|
-
* -
|
|
51
|
-
* - hint: No response_format, rely on prompt instructions (medium speed)
|
|
48
|
+
* Output Mode Strategy (TEXT + HINT only):
|
|
49
|
+
* - hint: No response_format, rely on prompt instructions (~95% reliable)
|
|
52
50
|
* - text: No response_format, plain text output (fastest)
|
|
53
51
|
*
|
|
54
52
|
* Message Format (Anthropic-specific):
|
|
@@ -66,9 +64,8 @@ export declare class ClaudeHandler implements ProviderHandler {
|
|
|
66
64
|
/**
|
|
67
65
|
* Format system prompt for Claude with output mode support.
|
|
68
66
|
*
|
|
69
|
-
* Output Mode Strategy:
|
|
70
|
-
* -
|
|
71
|
-
* - hint: Add detailed JSON schema instructions in prompt
|
|
67
|
+
* Output Mode Strategy (TEXT + HINT only):
|
|
68
|
+
* - hint: Add detailed JSON schema instructions with DECISION GUIDE in prompt
|
|
72
69
|
* - text: No JSON instructions (plain text output)
|
|
73
70
|
*/
|
|
74
71
|
formatSystemPrompt(basePrompt: string, toolSchemas: ToolSchema[] | null, outputSchema: OutputSchema | null, outputMode?: OutputMode): string;
|
|
@@ -91,17 +88,5 @@ export declare class ClaudeHandler implements ProviderHandler {
|
|
|
91
88
|
* - If schema exists, always use "hint" mode (prompt-based)
|
|
92
89
|
*/
|
|
93
90
|
determineOutputMode(outputSchema: OutputSchema | null, overrideMode?: OutputMode): OutputMode;
|
|
94
|
-
/**
|
|
95
|
-
* Append JSON schema instructions to the system prompt for "hint" mode.
|
|
96
|
-
*
|
|
97
|
-
* This enables fast, prompt-based structured output instead of slow generateObject().
|
|
98
|
-
* Claude is excellent at following detailed instructions, so this approach is
|
|
99
|
-
* ~95% reliable while being much faster than native structured output.
|
|
100
|
-
*
|
|
101
|
-
* @param messages - Messages with system prompt
|
|
102
|
-
* @param outputSchema - Schema to include in instructions
|
|
103
|
-
* @returns Messages with updated system prompt
|
|
104
|
-
*/
|
|
105
|
-
private appendJsonInstructionsToSystemPrompt;
|
|
106
91
|
}
|
|
107
92
|
//# sourceMappingURL=claude-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-handler.d.ts","sourceRoot":"","sources":["../../src/provider-handlers/claude-handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claude-handler.d.ts","sourceRoot":"","sources":["../../src/provider-handlers/claude-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AAS/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,MAAM,eAAe;IAE9B;;;;;;;;;;;OAWG;IACH,cAAc,CACZ,QAAQ,EAAE,UAAU,EAAE,EACtB,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,EAC1B,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GACA,eAAe;IAuClB;;;;;;OAMG;IACH,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,EAChC,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM;IAyET;;OAEG;IACH,eAAe,IAAI,kBAAkB;IAWrC;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CACjB,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,YAAY,CAAC,EAAE,UAAU,GACxB,UAAU;CAgBd"}
|
|
@@ -4,23 +4,22 @@
|
|
|
4
4
|
* Optimized for Claude API (Claude 3.x, Sonnet, Opus, Haiku)
|
|
5
5
|
* using Anthropic's best practices for tool calling and JSON responses.
|
|
6
6
|
*
|
|
7
|
-
* Supports
|
|
8
|
-
* -
|
|
9
|
-
* - hint: Use prompt-based JSON instructions (medium speed, ~95% reliable)
|
|
7
|
+
* Supports two output modes (TEXT + HINT only):
|
|
8
|
+
* - hint: Use prompt-based JSON instructions with DECISION GUIDE (~95% reliable)
|
|
10
9
|
* - text: Plain text output for str return types (fastest)
|
|
11
10
|
*
|
|
11
|
+
* Native response_format (strict mode) is NOT used due to cross-runtime
|
|
12
|
+
* incompatibilities when tools are present, and grammar compilation overhead.
|
|
13
|
+
*
|
|
12
14
|
* Features:
|
|
13
15
|
* - Anti-XML tool calling instructions
|
|
14
|
-
* -
|
|
16
|
+
* - DECISION GUIDE for tool vs. direct JSON response decisions
|
|
15
17
|
*
|
|
16
18
|
* Note: Prompt caching is not yet implemented for AI SDK v6.
|
|
17
19
|
* TODO: Re-enable via experimental_providerOptions when AI SDK v6 supports it.
|
|
18
|
-
*
|
|
19
|
-
* Based on Python's ClaudeHandler:
|
|
20
|
-
* src/runtime/python/_mcp_mesh/engine/provider_handlers/claude_handler.py
|
|
21
20
|
*/
|
|
22
21
|
import { createDebug } from "../debug.js";
|
|
23
|
-
import { convertMessagesToVercelFormat,
|
|
22
|
+
import { convertMessagesToVercelFormat, BASE_TOOL_INSTRUCTIONS, CLAUDE_ANTI_XML_INSTRUCTION, } from "./provider-handler.js";
|
|
24
23
|
import { ProviderHandlerRegistry } from "./provider-handler-registry.js";
|
|
25
24
|
const debug = createDebug("claude-handler");
|
|
26
25
|
// ============================================================================
|
|
@@ -31,18 +30,18 @@ const debug = createDebug("claude-handler");
|
|
|
31
30
|
*
|
|
32
31
|
* Claude Characteristics:
|
|
33
32
|
* - Excellent at following detailed instructions
|
|
34
|
-
* - Native structured output via response_format (requires strict schema)
|
|
35
33
|
* - Native tool calling (via Anthropic messages API)
|
|
36
34
|
* - Performs best with anti-XML tool calling instructions
|
|
37
35
|
*
|
|
38
|
-
* Output Modes:
|
|
39
|
-
* -
|
|
40
|
-
* - hint: JSON schema in prompt (medium speed, usually valid JSON)
|
|
36
|
+
* Output Modes (TEXT + HINT only):
|
|
37
|
+
* - hint: JSON schema in prompt with DECISION GUIDE (~95% reliable)
|
|
41
38
|
* - text: Plain text output for str return types (fastest)
|
|
42
39
|
*
|
|
40
|
+
* Native response_format (strict mode) is not used. HINT mode with
|
|
41
|
+
* detailed prompt instructions provides sufficient reliability (~95%)
|
|
42
|
+
* without cross-runtime incompatibilities and grammar compilation overhead.
|
|
43
|
+
*
|
|
43
44
|
* Best Practices (from Anthropic docs):
|
|
44
|
-
* - Use response_format for guaranteed JSON schema compliance
|
|
45
|
-
* - Schema must have additionalProperties: false on all objects
|
|
46
45
|
* - Add anti-XML instructions to prevent <invoke> style tool calls
|
|
47
46
|
* - Use one tool call at a time for better reliability
|
|
48
47
|
*/
|
|
@@ -51,9 +50,8 @@ export class ClaudeHandler {
|
|
|
51
50
|
/**
|
|
52
51
|
* Prepare request parameters for Claude API with output mode support.
|
|
53
52
|
*
|
|
54
|
-
* Output Mode Strategy:
|
|
55
|
-
* -
|
|
56
|
-
* - hint: No response_format, rely on prompt instructions (medium speed)
|
|
53
|
+
* Output Mode Strategy (TEXT + HINT only):
|
|
54
|
+
* - hint: No response_format, rely on prompt instructions (~95% reliable)
|
|
57
55
|
* - text: No response_format, plain text output (fastest)
|
|
58
56
|
*
|
|
59
57
|
* Message Format (Anthropic-specific):
|
|
@@ -66,11 +64,11 @@ export class ClaudeHandler {
|
|
|
66
64
|
const determinedMode = this.determineOutputMode(outputSchema, outputMode);
|
|
67
65
|
// Convert messages to Vercel AI SDK format (shared utility)
|
|
68
66
|
let convertedMessages = convertMessagesToVercelFormat(messages);
|
|
69
|
-
//
|
|
70
|
-
//
|
|
67
|
+
// Note: In hint mode, JSON instructions are added by formatSystemPrompt() which
|
|
68
|
+
// is called by llm-provider.ts before prepareRequest(). We don't duplicate here.
|
|
69
|
+
// The formatSystemPrompt() method handles the DECISION GUIDE when tools are present.
|
|
71
70
|
if (determinedMode === "hint" && outputSchema) {
|
|
72
|
-
|
|
73
|
-
debug(`Using hint mode with JSON instructions in prompt for schema: ${outputSchema.name}`);
|
|
71
|
+
debug(`Using hint mode (JSON instructions added by formatSystemPrompt)`);
|
|
74
72
|
}
|
|
75
73
|
const request = {
|
|
76
74
|
messages: convertedMessages,
|
|
@@ -91,29 +89,13 @@ export class ClaudeHandler {
|
|
|
91
89
|
if (topP !== undefined) {
|
|
92
90
|
request.topP = topP;
|
|
93
91
|
}
|
|
94
|
-
// Only add response_format in "strict" mode (not used for Claude anymore)
|
|
95
|
-
if (determinedMode === "strict" && outputSchema) {
|
|
96
|
-
// Claude requires additionalProperties: false on all object types
|
|
97
|
-
// Unlike OpenAI/Gemini, Claude doesn't require all properties in 'required'
|
|
98
|
-
const strictSchema = makeSchemaStrict(outputSchema.schema, { addAllRequired: false });
|
|
99
|
-
request.responseFormat = {
|
|
100
|
-
type: "json_schema",
|
|
101
|
-
jsonSchema: {
|
|
102
|
-
name: outputSchema.name,
|
|
103
|
-
schema: strictSchema,
|
|
104
|
-
strict: false, // Allow optional fields with defaults
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
debug(`Using strict mode with response_format for schema: ${outputSchema.name}`);
|
|
108
|
-
}
|
|
109
92
|
return request;
|
|
110
93
|
}
|
|
111
94
|
/**
|
|
112
95
|
* Format system prompt for Claude with output mode support.
|
|
113
96
|
*
|
|
114
|
-
* Output Mode Strategy:
|
|
115
|
-
* -
|
|
116
|
-
* - hint: Add detailed JSON schema instructions in prompt
|
|
97
|
+
* Output Mode Strategy (TEXT + HINT only):
|
|
98
|
+
* - hint: Add detailed JSON schema instructions with DECISION GUIDE in prompt
|
|
117
99
|
* - text: No JSON instructions (plain text output)
|
|
118
100
|
*/
|
|
119
101
|
formatSystemPrompt(basePrompt, toolSchemas, outputSchema, outputMode) {
|
|
@@ -131,15 +113,6 @@ export class ClaudeHandler {
|
|
|
131
113
|
// Text mode: No JSON instructions
|
|
132
114
|
return systemContent;
|
|
133
115
|
}
|
|
134
|
-
if (determinedMode === "strict") {
|
|
135
|
-
// Strict mode: Minimal instructions (response_format handles schema)
|
|
136
|
-
if (outputSchema) {
|
|
137
|
-
systemContent += `
|
|
138
|
-
|
|
139
|
-
Your final response will be structured as JSON matching the ${outputSchema.name} format.`;
|
|
140
|
-
}
|
|
141
|
-
return systemContent;
|
|
142
|
-
}
|
|
143
116
|
// Hint mode: Add detailed JSON schema instructions
|
|
144
117
|
if (determinedMode === "hint" && outputSchema) {
|
|
145
118
|
const properties = (outputSchema.schema.properties ?? {});
|
|
@@ -156,8 +129,18 @@ Your final response will be structured as JSON matching the ${outputSchema.name}
|
|
|
156
129
|
}
|
|
157
130
|
const fieldsText = fieldDescriptions.join("\n");
|
|
158
131
|
const exampleFormat = Object.fromEntries(Object.entries(properties).map(([k, v]) => [k, `<${v.type ?? "value"}>`]));
|
|
132
|
+
// Add DECISION GUIDE when tools are present to help Claude know when NOT to use tools
|
|
133
|
+
let decisionGuide = "";
|
|
134
|
+
if (toolSchemas && toolSchemas.length > 0) {
|
|
135
|
+
decisionGuide = `
|
|
136
|
+
DECISION GUIDE:
|
|
137
|
+
- If your answer requires real-time data (weather, calculations, etc.), call the appropriate tool FIRST, then format your response as JSON.
|
|
138
|
+
- If your answer is general knowledge (like facts, explanations, definitions), directly return your response as JSON WITHOUT calling tools.
|
|
139
|
+
- After calling a tool and receiving results, STOP calling tools and return your final JSON response.
|
|
140
|
+
`;
|
|
141
|
+
}
|
|
159
142
|
systemContent += `
|
|
160
|
-
|
|
143
|
+
${decisionGuide}
|
|
161
144
|
RESPONSE FORMAT:
|
|
162
145
|
You MUST respond with valid JSON matching this schema:
|
|
163
146
|
{
|
|
@@ -180,10 +163,10 @@ CRITICAL: Your response must be ONLY the raw JSON object.
|
|
|
180
163
|
getCapabilities() {
|
|
181
164
|
return {
|
|
182
165
|
nativeToolCalling: true, // Claude has native function calling
|
|
183
|
-
structuredOutput:
|
|
166
|
+
structuredOutput: false, // Uses HINT mode (prompt-based), not native response_format
|
|
184
167
|
streaming: true, // Supports streaming
|
|
185
168
|
vision: true, // Claude 3+ supports vision
|
|
186
|
-
jsonMode:
|
|
169
|
+
jsonMode: false, // No native JSON mode used
|
|
187
170
|
promptCaching: false, // TODO: Re-enable via experimental_providerOptions
|
|
188
171
|
};
|
|
189
172
|
}
|
|
@@ -214,70 +197,6 @@ CRITICAL: Your response must be ONLY the raw JSON object.
|
|
|
214
197
|
// and native structured output is slow. Prompt-based JSON is fast and reliable.
|
|
215
198
|
return "hint";
|
|
216
199
|
}
|
|
217
|
-
// ==========================================================================
|
|
218
|
-
// Private Helper Methods
|
|
219
|
-
// ==========================================================================
|
|
220
|
-
/**
|
|
221
|
-
* Append JSON schema instructions to the system prompt for "hint" mode.
|
|
222
|
-
*
|
|
223
|
-
* This enables fast, prompt-based structured output instead of slow generateObject().
|
|
224
|
-
* Claude is excellent at following detailed instructions, so this approach is
|
|
225
|
-
* ~95% reliable while being much faster than native structured output.
|
|
226
|
-
*
|
|
227
|
-
* @param messages - Messages with system prompt
|
|
228
|
-
* @param outputSchema - Schema to include in instructions
|
|
229
|
-
* @returns Messages with updated system prompt
|
|
230
|
-
*/
|
|
231
|
-
appendJsonInstructionsToSystemPrompt(messages, outputSchema) {
|
|
232
|
-
const properties = (outputSchema.schema.properties ?? {});
|
|
233
|
-
const required = (outputSchema.schema.required ?? []);
|
|
234
|
-
// Build human-readable schema description
|
|
235
|
-
const fieldDescriptions = [];
|
|
236
|
-
for (const [fieldName, fieldSchema] of Object.entries(properties)) {
|
|
237
|
-
const fieldType = fieldSchema.type ?? "any";
|
|
238
|
-
const isRequired = required.includes(fieldName);
|
|
239
|
-
const reqMarker = isRequired ? " (required)" : " (optional)";
|
|
240
|
-
const desc = fieldSchema.description ?? "";
|
|
241
|
-
const descText = desc ? ` - ${desc}` : "";
|
|
242
|
-
fieldDescriptions.push(` - ${fieldName}: ${fieldType}${reqMarker}${descText}`);
|
|
243
|
-
}
|
|
244
|
-
const fieldsText = fieldDescriptions.join("\n");
|
|
245
|
-
const exampleFormat = Object.fromEntries(Object.entries(properties).map(([k, v]) => [k, `<${v.type ?? "value"}>`]));
|
|
246
|
-
const jsonInstructions = `
|
|
247
|
-
|
|
248
|
-
RESPONSE FORMAT:
|
|
249
|
-
You MUST respond with valid JSON matching the ${outputSchema.name} schema:
|
|
250
|
-
{
|
|
251
|
-
${fieldsText}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
Example format:
|
|
255
|
-
${JSON.stringify(exampleFormat, null, 2)}
|
|
256
|
-
|
|
257
|
-
CRITICAL: Your response must be ONLY the raw JSON object.
|
|
258
|
-
- DO NOT wrap in markdown code fences (\`\`\`json or \`\`\`)
|
|
259
|
-
- DO NOT include any text before or after the JSON
|
|
260
|
-
- Start directly with { and end with }`;
|
|
261
|
-
// Find and update system message, or prepend one if none exists
|
|
262
|
-
const updatedMessages = [...messages];
|
|
263
|
-
const systemIndex = updatedMessages.findIndex((m) => m.role === "system");
|
|
264
|
-
if (systemIndex >= 0) {
|
|
265
|
-
// Append to existing system message
|
|
266
|
-
const systemMsg = updatedMessages[systemIndex];
|
|
267
|
-
updatedMessages[systemIndex] = {
|
|
268
|
-
...systemMsg,
|
|
269
|
-
content: (systemMsg.content ?? "") + jsonInstructions,
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
// Prepend new system message with JSON instructions
|
|
274
|
-
updatedMessages.unshift({
|
|
275
|
-
role: "system",
|
|
276
|
-
content: jsonInstructions.trim(),
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
return updatedMessages;
|
|
280
|
-
}
|
|
281
200
|
}
|
|
282
201
|
// Register with the registry
|
|
283
202
|
ProviderHandlerRegistry.register("anthropic", ClaudeHandler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-handler.js","sourceRoot":"","sources":["../../src/provider-handlers/claude-handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claude-handler.js","sourceRoot":"","sources":["../../src/provider-handlers/claude-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Gemini/Google provider handler.
|
|
2
|
+
* Gemini/Google provider handler for Gemini 3.x models.
|
|
3
3
|
*
|
|
4
|
-
* Optimized for Gemini models (Gemini
|
|
4
|
+
* Optimized for Gemini models (Gemini 3 Flash Preview, Gemini 2.0 Flash, etc.)
|
|
5
5
|
* using Google's best practices for tool calling and structured output.
|
|
6
6
|
*
|
|
7
7
|
* Features:
|
|
@@ -34,12 +34,12 @@ import { type ProviderHandler, type VendorCapabilities, type ToolSchema, type Ou
|
|
|
34
34
|
* - Similar schema enforcement requirements
|
|
35
35
|
*
|
|
36
36
|
* Supported Models (via Vercel AI SDK):
|
|
37
|
+
* - gemini-3-flash-preview (reasoning support)
|
|
38
|
+
* - gemini-3-pro-preview (advanced reasoning)
|
|
37
39
|
* - gemini-2.0-flash (fast, efficient)
|
|
38
40
|
* - gemini-2.0-flash-lite (fastest, most efficient)
|
|
39
41
|
* - gemini-1.5-pro (high capability)
|
|
40
42
|
* - gemini-1.5-flash (balanced)
|
|
41
|
-
* - gemini-3-flash-preview (reasoning support)
|
|
42
|
-
* - gemini-3-pro-preview (advanced reasoning)
|
|
43
43
|
*/
|
|
44
44
|
export declare class GeminiHandler implements ProviderHandler {
|
|
45
45
|
readonly vendor = "google";
|
|
@@ -59,13 +59,16 @@ export declare class GeminiHandler implements ProviderHandler {
|
|
|
59
59
|
[key: string]: unknown;
|
|
60
60
|
}): PreparedRequest;
|
|
61
61
|
/**
|
|
62
|
-
* Format system prompt for Gemini
|
|
62
|
+
* Format system prompt for Gemini with output mode support.
|
|
63
63
|
*
|
|
64
64
|
* Gemini Strategy:
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
65
|
+
* - strict mode: Brief JSON note (response_format handles schema)
|
|
66
|
+
* - hint mode: Detailed JSON schema instructions in prompt
|
|
67
|
+
* - text mode: No JSON instructions
|
|
68
|
+
*
|
|
69
|
+
* When tools are present, llm-provider forces "hint" mode because
|
|
70
|
+
* generateObject() doesn't support tools, so we need prompt-based
|
|
71
|
+
* JSON instructions to ensure structured output.
|
|
69
72
|
*/
|
|
70
73
|
formatSystemPrompt(basePrompt: string, toolSchemas: ToolSchema[] | null, outputSchema: OutputSchema | null, outputMode?: OutputMode): string;
|
|
71
74
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-handler.d.ts","sourceRoot":"","sources":["../../src/provider-handlers/gemini-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"gemini-handler.d.ts","sourceRoot":"","sources":["../../src/provider-handlers/gemini-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AAK/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,MAAM,YAAY;IAE3B;;;;;;;OAOG;IACH,cAAc,CACZ,QAAQ,EAAE,UAAU,EAAE,EACtB,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,EAC1B,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GACA,eAAe;IAwDlB;;;;;;;;;;;OAWG;IACH,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,EAChC,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM;IA0ET;;OAEG;IACH,eAAe,IAAI,kBAAkB;IAUrC;;;;OAIG;IACH,mBAAmB,CACjB,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,YAAY,CAAC,EAAE,UAAU,GACxB,UAAU;CAGd"}
|