@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.
Files changed (36) hide show
  1. package/dist/__tests__/claude-handler.test.js +17 -71
  2. package/dist/__tests__/claude-handler.test.js.map +1 -1
  3. package/dist/__tests__/llm-provider.test.js +3 -3
  4. package/dist/__tests__/llm-provider.test.js.map +1 -1
  5. package/dist/__tests__/provider-handler-registry.test.js +6 -6
  6. package/dist/__tests__/provider-handler-registry.test.js.map +1 -1
  7. package/dist/llm-agent.d.ts +2 -2
  8. package/dist/llm-agent.d.ts.map +1 -1
  9. package/dist/llm-agent.js +13 -10
  10. package/dist/llm-agent.js.map +1 -1
  11. package/dist/llm-provider.d.ts.map +1 -1
  12. package/dist/llm-provider.js +41 -14
  13. package/dist/llm-provider.js.map +1 -1
  14. package/dist/provider-handlers/claude-handler.d.ts +16 -31
  15. package/dist/provider-handlers/claude-handler.d.ts.map +1 -1
  16. package/dist/provider-handlers/claude-handler.js +34 -115
  17. package/dist/provider-handlers/claude-handler.js.map +1 -1
  18. package/dist/provider-handlers/gemini-handler.d.ts +12 -9
  19. package/dist/provider-handlers/gemini-handler.d.ts.map +1 -1
  20. package/dist/provider-handlers/gemini-handler.js +68 -17
  21. package/dist/provider-handlers/gemini-handler.js.map +1 -1
  22. package/dist/provider-handlers/index.d.ts +1 -1
  23. package/dist/provider-handlers/index.d.ts.map +1 -1
  24. package/dist/provider-handlers/index.js +1 -1
  25. package/dist/provider-handlers/index.js.map +1 -1
  26. package/dist/provider-handlers/openai-handler.d.ts +7 -10
  27. package/dist/provider-handlers/openai-handler.d.ts.map +1 -1
  28. package/dist/provider-handlers/openai-handler.js +61 -19
  29. package/dist/provider-handlers/openai-handler.js.map +1 -1
  30. package/dist/provider-handlers/provider-handler.d.ts +11 -0
  31. package/dist/provider-handlers/provider-handler.d.ts.map +1 -1
  32. package/dist/provider-handlers/provider-handler.js +106 -2
  33. package/dist/provider-handlers/provider-handler.js.map +1 -1
  34. package/dist/types.d.ts +2 -2
  35. package/dist/types.d.ts.map +1 -1
  36. package/package.json +2 -2
@@ -173,7 +173,7 @@ function convertToolCalls(toolCalls) {
173
173
  type: "function",
174
174
  function: {
175
175
  name: tc.toolName,
176
- arguments: JSON.stringify(tc.args ?? {}),
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
- // Note: Vercel AI SDK expects Zod schemas for parameters, but we receive JSON Schema
319
- // from MCP tools. We use jsonSchema() from the AI SDK to wrap JSON Schema properly.
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}' schema: ${JSON.stringify(cleanSchema)}`);
339
- vercelTools[tool.function.name] = {
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
- // Issue #459: Pass output schema so handler can format system prompt appropriately
348
- const preparedRequest = handler.prepareRequest(request.messages, null, // tools handled separately for Vercel AI SDK
349
- outputSchemaObj, // Pass output schema for prompt formatting
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
- // Claude always uses "hint" mode because generateObject() has issues with Anthropic
393
- const outputMode = handler.determineOutputMode(outputSchemaObj);
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;
@@ -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 three output modes for performance/reliability tradeoffs:
8
- * - strict: Use response_format for guaranteed schema compliance (slowest, 100% reliable)
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
- * - Output mode optimization based on return type
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
- * - strict: response_format with JSON schema (slowest, guaranteed valid JSON)
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
- * - strict: Use response_format for guaranteed JSON schema compliance (slowest)
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
- * - strict: Minimal JSON instructions (response_format handles schema)
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;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAKL,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;;;;;;;;;;;;OAYG;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;IA0DlB;;;;;;;OAOG;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;IAwET;;OAEG;IACH,eAAe,IAAI,kBAAkB;IAWrC;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CACjB,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,YAAY,CAAC,EAAE,UAAU,GACxB,UAAU;IAoBb;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oCAAoC;CA+D7C"}
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 three output modes for performance/reliability tradeoffs:
8
- * - strict: Use response_format for guaranteed schema compliance (slowest, 100% reliable)
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
- * - Output mode optimization based on return type
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, makeSchemaStrict, BASE_TOOL_INSTRUCTIONS, CLAUDE_ANTI_XML_INSTRUCTION, } from "./provider-handler.js";
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
- * - strict: response_format with JSON schema (slowest, guaranteed valid JSON)
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
- * - strict: Use response_format for guaranteed JSON schema compliance (slowest)
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
- // For "hint" mode, append JSON instructions to the system prompt
70
- // This is the fast, prompt-based approach instead of slow generateObject()
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
- convertedMessages = this.appendJsonInstructionsToSystemPrompt(convertedMessages, outputSchema);
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
- * - strict: Minimal JSON instructions (response_format handles schema)
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: true, // Native response_format support via Vercel AI SDK
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: true, // Native JSON mode via response_format
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":"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"}
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 2.0 Flash, Gemini 1.5 Pro, etc.)
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 (concise approach).
62
+ * Format system prompt for Gemini with output mode support.
63
63
  *
64
64
  * Gemini Strategy:
65
- * 1. Use base prompt as-is
66
- * 2. Add tool calling instructions if tools present
67
- * 3. Minimal JSON instructions (response_format handles structure)
68
- * 4. Keep prompt concise - Gemini works well with clear, direct prompts
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,EAKL,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;IAuDlB;;;;;;;;OAQG;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;IAsBT;;OAEG;IACH,eAAe,IAAI,kBAAkB;IAUrC;;;;OAIG;IACH,mBAAmB,CACjB,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,YAAY,CAAC,EAAE,UAAU,GACxB,UAAU;CAGd"}
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"}