@mcpmesh/sdk 0.8.0-beta.9 → 0.8.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 (52) hide show
  1. package/dist/__tests__/claude-handler.test.js +74 -41
  2. package/dist/__tests__/claude-handler.test.js.map +1 -1
  3. package/dist/__tests__/config.test.js +15 -17
  4. package/dist/__tests__/config.test.js.map +1 -1
  5. package/dist/agent.d.ts +1 -1
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +28 -15
  8. package/dist/agent.js.map +1 -1
  9. package/dist/api-runtime.d.ts +2 -4
  10. package/dist/api-runtime.d.ts.map +1 -1
  11. package/dist/api-runtime.js +11 -10
  12. package/dist/api-runtime.js.map +1 -1
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +6 -5
  15. package/dist/config.js.map +1 -1
  16. package/dist/express.d.ts +2 -2
  17. package/dist/express.d.ts.map +1 -1
  18. package/dist/express.js +17 -14
  19. package/dist/express.js.map +1 -1
  20. package/dist/index.d.ts +5 -4
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +5 -4
  23. package/dist/index.js.map +1 -1
  24. package/dist/llm-agent.d.ts +44 -1
  25. package/dist/llm-agent.d.ts.map +1 -1
  26. package/dist/llm-agent.js +218 -10
  27. package/dist/llm-agent.js.map +1 -1
  28. package/dist/llm-provider.d.ts +9 -2
  29. package/dist/llm-provider.d.ts.map +1 -1
  30. package/dist/llm-provider.js +90 -27
  31. package/dist/llm-provider.js.map +1 -1
  32. package/dist/llm.d.ts +1 -1
  33. package/dist/llm.d.ts.map +1 -1
  34. package/dist/llm.js +22 -7
  35. package/dist/llm.js.map +1 -1
  36. package/dist/provider-handlers/claude-handler.d.ts +16 -7
  37. package/dist/provider-handlers/claude-handler.d.ts.map +1 -1
  38. package/dist/provider-handlers/claude-handler.js +76 -60
  39. package/dist/provider-handlers/claude-handler.js.map +1 -1
  40. package/dist/provider-handlers/index.d.ts +1 -1
  41. package/dist/provider-handlers/index.d.ts.map +1 -1
  42. package/dist/provider-handlers/index.js +1 -1
  43. package/dist/provider-handlers/index.js.map +1 -1
  44. package/dist/proxy.d.ts +3 -10
  45. package/dist/proxy.d.ts.map +1 -1
  46. package/dist/proxy.js +1 -0
  47. package/dist/proxy.js.map +1 -1
  48. package/dist/route.d.ts +3 -3
  49. package/dist/route.d.ts.map +1 -1
  50. package/dist/types.d.ts +38 -10
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"llm-agent.d.ts","sourceRoot":"","sources":["../src/llm-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-agent.d.ts","sourceRoot":"","sources":["../src/llm-agent.ts"],"names":[],"mappings":"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"}
package/dist/llm-agent.js CHANGED
@@ -4,10 +4,16 @@
4
4
  * This class handles:
5
5
  * - System prompt rendering (with Handlebars templates)
6
6
  * - Agentic loop with tool execution
7
- * - LLM provider calls (direct LiteLLM or mesh delegation)
7
+ * - LLM provider calls (direct Vercel AI SDK or mesh delegation)
8
8
  * - Response parsing with Zod validation
9
9
  * - Metadata tracking (tokens, latency, tool calls)
10
10
  *
11
+ * Configuration Hierarchy (ENV > Config):
12
+ * - MESH_LLM_PROVIDER: Override provider for direct mode (e.g., "claude", "openai", "gemini")
13
+ * - MESH_LLM_MODEL: Override model (e.g., "gpt-4o", "gemini-2.0-flash")
14
+ * - MESH_LLM_MAX_ITERATIONS: Override max agentic loop iterations
15
+ * - MESH_LLM_FILTER_MODE: Override tool filter mode ("all", "include", "exclude")
16
+ *
11
17
  * @example
12
18
  * ```typescript
13
19
  * const agent = new MeshLlmAgent({
@@ -29,6 +35,8 @@ import { renderTemplate } from "./template.js";
29
35
  import { ResponseParser } from "./response-parser.js";
30
36
  import { MaxIterationsError, LLMAPIError, ToolExecutionError, } from "./errors.js";
31
37
  import { parseSSEResponse } from "./sse.js";
38
+ import { loadProvider, extractVendorFromModel, extractModelName, } from "./llm-provider.js";
39
+ import { ProviderHandlerRegistry } from "./provider-handlers/index.js";
32
40
  /**
33
41
  * Default LiteLLM provider using HTTP proxy.
34
42
  * Assumes LiteLLM proxy is running at LITELLM_URL or localhost:4000.
@@ -85,6 +93,168 @@ export class LiteLLMProvider {
85
93
  return (await response.json());
86
94
  }
87
95
  }
96
+ /**
97
+ * Default model mappings for provider shorthand names.
98
+ */
99
+ const DEFAULT_MODELS = {
100
+ claude: "anthropic/claude-sonnet-4-20250514",
101
+ openai: "openai/gpt-4o",
102
+ anthropic: "anthropic/claude-sonnet-4-20250514",
103
+ gemini: "google/gemini-2.0-flash",
104
+ google: "google/gemini-2.0-flash",
105
+ gpt4: "openai/gpt-4o",
106
+ gpt35: "openai/gpt-3.5-turbo",
107
+ };
108
+ /**
109
+ * Direct Vercel AI SDK provider.
110
+ * Uses Vercel AI SDK (@ai-sdk/anthropic, @ai-sdk/openai, etc.) directly
111
+ * without needing a proxy server.
112
+ */
113
+ export class VercelDirectProvider {
114
+ providerSpec;
115
+ cachedProvider = null;
116
+ providerLoadAttempted = false;
117
+ constructor(providerSpec) {
118
+ this.providerSpec = providerSpec;
119
+ }
120
+ /**
121
+ * Resolve the full model string from provider spec.
122
+ * E.g., "claude" -> "anthropic/claude-sonnet-4-20250514"
123
+ */
124
+ resolveModel(model) {
125
+ // If explicit model provided, use it
126
+ if (model && model !== "default") {
127
+ // If model already has vendor prefix, use as-is
128
+ if (model.includes("/")) {
129
+ return model;
130
+ }
131
+ // Otherwise, try to add vendor prefix from provider spec
132
+ const vendor = extractVendorFromModel(DEFAULT_MODELS[this.providerSpec.toLowerCase()] ?? this.providerSpec);
133
+ if (vendor) {
134
+ return `${vendor}/${model}`;
135
+ }
136
+ return model;
137
+ }
138
+ // Map shorthand provider to full model
139
+ const defaultModel = DEFAULT_MODELS[this.providerSpec.toLowerCase()];
140
+ if (defaultModel) {
141
+ return defaultModel;
142
+ }
143
+ // Assume provider spec is already a model identifier
144
+ return this.providerSpec;
145
+ }
146
+ async complete(model, messages, tools, options) {
147
+ const fullModel = this.resolveModel(model);
148
+ const vendor = extractVendorFromModel(fullModel);
149
+ const modelName = extractModelName(fullModel);
150
+ if (!vendor) {
151
+ throw new LLMAPIError(400, `Cannot determine vendor from model: ${fullModel}. Use format "vendor/model" (e.g., "anthropic/claude-sonnet-4-5")`, "vercel");
152
+ }
153
+ // Load provider if not cached
154
+ if (!this.providerLoadAttempted) {
155
+ this.providerLoadAttempted = true;
156
+ this.cachedProvider = await loadProvider(vendor);
157
+ }
158
+ if (!this.cachedProvider) {
159
+ throw new LLMAPIError(500, `Vercel AI SDK provider for '${vendor}' not available. Install: npm install @ai-sdk/${vendor}`, "vercel");
160
+ }
161
+ // Create the model instance
162
+ const aiModel = this.cachedProvider(modelName);
163
+ // Get vendor-specific handler for optimizations
164
+ const handler = ProviderHandlerRegistry.getHandler(vendor);
165
+ // Import generateText from ai package
166
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
167
+ const aiModule = (await import("ai"));
168
+ const generateText = aiModule.generateText;
169
+ const jsonSchema = aiModule.jsonSchema;
170
+ // Convert tools to Vercel AI SDK format
171
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
172
+ let vercelTools;
173
+ if (tools && tools.length > 0) {
174
+ vercelTools = {};
175
+ for (const tool of tools) {
176
+ const rawSchema = tool.function.parameters ?? {
177
+ type: "object",
178
+ properties: {},
179
+ };
180
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
181
+ const { $schema, ...schemaWithoutMeta } = rawSchema;
182
+ const cleanSchema = {
183
+ type: "object",
184
+ ...schemaWithoutMeta,
185
+ };
186
+ vercelTools[tool.function.name] = {
187
+ description: tool.function.description ?? "",
188
+ parameters: jsonSchema(cleanSchema),
189
+ };
190
+ }
191
+ }
192
+ // Apply vendor-specific request preparation
193
+ const preparedRequest = handler.prepareRequest(messages, null, // tools handled separately
194
+ options?.outputSchema ?? null, {
195
+ temperature: options?.temperature,
196
+ maxOutputTokens: options?.maxOutputTokens,
197
+ topP: options?.topP,
198
+ });
199
+ // Build request options
200
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
201
+ const requestOptions = {
202
+ model: aiModel,
203
+ messages: preparedRequest.messages,
204
+ };
205
+ if (vercelTools && Object.keys(vercelTools).length > 0) {
206
+ requestOptions.tools = vercelTools;
207
+ }
208
+ if (options?.maxOutputTokens) {
209
+ requestOptions.maxTokens = options.maxOutputTokens;
210
+ }
211
+ if (options?.temperature !== undefined) {
212
+ requestOptions.temperature = options.temperature;
213
+ }
214
+ if (options?.topP !== undefined) {
215
+ requestOptions.topP = options.topP;
216
+ }
217
+ try {
218
+ const result = await generateText(requestOptions);
219
+ // Convert Vercel AI SDK response to LlmCompletionResponse format
220
+ const response = {
221
+ id: `vercel-${Date.now()}`,
222
+ object: "chat.completion",
223
+ created: Math.floor(Date.now() / 1000),
224
+ model: fullModel,
225
+ choices: [
226
+ {
227
+ index: 0,
228
+ message: {
229
+ role: "assistant",
230
+ content: result.text || null,
231
+ tool_calls: result.toolCalls?.map((tc) => ({
232
+ id: tc.toolCallId,
233
+ type: "function",
234
+ function: {
235
+ name: tc.toolName,
236
+ arguments: JSON.stringify(tc.args ?? {}),
237
+ },
238
+ })),
239
+ },
240
+ finish_reason: result.finishReason ?? "stop",
241
+ },
242
+ ],
243
+ usage: {
244
+ prompt_tokens: result.usage?.promptTokens ?? 0,
245
+ completion_tokens: result.usage?.completionTokens ?? 0,
246
+ total_tokens: (result.usage?.promptTokens ?? 0) +
247
+ (result.usage?.completionTokens ?? 0),
248
+ },
249
+ };
250
+ return response;
251
+ }
252
+ catch (error) {
253
+ const message = error instanceof Error ? error.message : String(error);
254
+ throw new LLMAPIError(500, `Vercel AI SDK error: ${message}`, "vercel");
255
+ }
256
+ }
257
+ }
88
258
  /**
89
259
  * Mesh provider that delegates to an LLM provider discovered via mesh.
90
260
  */
@@ -110,6 +280,12 @@ export class MeshDelegatedProvider {
110
280
  modelParams.top_p = options.topP;
111
281
  if (options?.stop)
112
282
  modelParams.stop = options.stop;
283
+ // Issue #459: Include output_schema for provider to apply vendor-specific handling
284
+ // (e.g., OpenAI/Gemini need response_format, Claude uses strict mode)
285
+ if (options?.outputSchema) {
286
+ modelParams.output_schema = options.outputSchema.schema;
287
+ modelParams.output_type_name = options.outputSchema.name;
288
+ }
113
289
  const request = {
114
290
  messages,
115
291
  };
@@ -288,19 +464,38 @@ export class MeshLlmAgent {
288
464
  messages.push({ role: msg.role, content: msg.content });
289
465
  }
290
466
  }
291
- // Get effective options
292
- const maxIterations = context.options?.maxIterations ?? this.config.maxIterations;
467
+ // Get effective options (runtime options > MESH_LLM_* env > config)
468
+ const maxIterations = context.options?.maxIterations ??
469
+ (process.env.MESH_LLM_MAX_ITERATIONS
470
+ ? parseInt(process.env.MESH_LLM_MAX_ITERATIONS, 10)
471
+ : this.config.maxIterations);
293
472
  const maxTokens = context.options?.maxOutputTokens ?? this.config.maxOutputTokens;
294
473
  const temperature = context.options?.temperature ?? this.config.temperature;
295
- // Determine model
296
- const model = context.meshProvider?.model ?? this.config.model ?? this.getDefaultModel();
474
+ // Determine model (mesh provider > MESH_LLM_MODEL env > config > default)
475
+ const model = context.meshProvider?.model ??
476
+ process.env.MESH_LLM_MODEL ??
477
+ this.config.model ??
478
+ this.getDefaultModel();
479
+ // Build output schema for provider (Issue #459) - computed once before loop
480
+ let outputSchema;
481
+ if (this.config.returnSchema) {
482
+ try {
483
+ const jsonSchema = zodToJsonSchema(this.config.returnSchema);
484
+ // Extract schema name from title or use generic name
485
+ const schemaName = jsonSchema.title ?? "Response";
486
+ outputSchema = { schema: jsonSchema, name: schemaName };
487
+ }
488
+ catch {
489
+ // If schema conversion fails, skip
490
+ }
491
+ }
297
492
  // Agentic loop
298
493
  let iteration = 0;
299
494
  let finalContent = "";
300
495
  while (iteration < maxIterations) {
301
496
  iteration++;
302
497
  // Call LLM
303
- const response = await provider.complete(model, messages, toolDefs.length > 0 ? toolDefs : undefined, { maxOutputTokens: maxTokens, temperature, topP: this.config.topP, stop: this.config.stop });
498
+ const response = await provider.complete(model, messages, toolDefs.length > 0 ? toolDefs : undefined, { maxOutputTokens: maxTokens, temperature, topP: this.config.topP, stop: this.config.stop, outputSchema });
304
499
  // Track tokens
305
500
  if (response.usage) {
306
501
  totalInputTokens += response.usage.prompt_tokens;
@@ -398,14 +593,26 @@ export class MeshLlmAgent {
398
593
  }
399
594
  /**
400
595
  * Resolve the LLM provider to use.
596
+ *
597
+ * Configuration Hierarchy (ENV > Config):
598
+ * - MESH_LLM_PROVIDER: Override provider (only for direct mode, not mesh delegation)
401
599
  */
402
600
  resolveProvider(context) {
403
- // If mesh provider is resolved, use it
601
+ // If mesh provider is resolved, use it (mesh delegation)
404
602
  if (context.meshProvider) {
405
603
  return new MeshDelegatedProvider(context.meshProvider.endpoint, context.meshProvider.functionName);
406
604
  }
407
- // Use direct LiteLLM provider
408
- return new LiteLLMProvider();
605
+ // Use direct Vercel AI SDK provider
606
+ // Check env var override first (only for string provider, not mesh delegation object)
607
+ let providerSpec;
608
+ if (typeof this.config.provider === "string") {
609
+ providerSpec =
610
+ process.env.MESH_LLM_PROVIDER || this.config.provider || "claude";
611
+ }
612
+ else {
613
+ providerSpec = "claude"; // fallback default for non-mesh object config
614
+ }
615
+ return new VercelDirectProvider(providerSpec);
409
616
  }
410
617
  /**
411
618
  * Get provider name for metadata.
@@ -415,7 +622,8 @@ export class MeshLlmAgent {
415
622
  return `mesh:${context.meshProvider.endpoint}`;
416
623
  }
417
624
  if (typeof this.config.provider === "string") {
418
- return this.config.provider;
625
+ // Return env var override if set, otherwise config value
626
+ return process.env.MESH_LLM_PROVIDER || this.config.provider;
419
627
  }
420
628
  return `mesh:${this.config.provider.capability}`;
421
629
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm-agent.js","sourceRoot":"","sources":["../src/llm-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-agent.js","sourceRoot":"","sources":["../src/llm-agent.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@
18
18
  * tags: ["llm", "claude", "anthropic", "provider"],
19
19
  * }));
20
20
  *
21
- * const agent = mesh(server, { name: "claude-provider", port: 9011 });
21
+ * const agent = mesh(server, { name: "claude-provider", httpPort: 9011 });
22
22
  * ```
23
23
  */
24
24
  import { z } from "zod";
@@ -52,6 +52,13 @@ export declare function extractVendorFromModel(model: string): string | null;
52
52
  * ```
53
53
  */
54
54
  export declare function extractModelName(model: string): string;
55
+ /**
56
+ * Dynamically load a Vercel AI SDK provider.
57
+ *
58
+ * @param vendor - Vendor name (e.g., "anthropic", "openai")
59
+ * @returns Provider create function or null if not available
60
+ */
61
+ export declare function loadProvider(vendor: string): Promise<((modelId: string) => unknown) | null>;
55
62
  /**
56
63
  * Zod schema for MeshLlmRequest input.
57
64
  */
@@ -291,7 +298,7 @@ type MeshLlmRequestInput = z.infer<typeof MeshLlmRequestSchema>;
291
298
  * temperature: 0.7,
292
299
  * }));
293
300
  *
294
- * const agent = mesh(server, { name: "claude-provider", port: 9011 });
301
+ * const agent = mesh(server, { name: "claude-provider", httpPort: 9011 });
295
302
  * ```
296
303
  */
297
304
  export declare function llmProvider(config: LlmProviderConfig): {
@@ -1 +1 @@
1
- {"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,YAAY,CAAC;AAwDpB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKtD;AAgGD;;GAEG;AACH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCxB,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,oBAAoB,CAAC;IACxC,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAuRA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,GACZ,IAAI,IAAI,UAAU,CAAC,OAAO,WAAW,CAAC,CAOxC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAEP"}
1
+ {"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,YAAY,CAAC;AAwDpB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMtD;AAMD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAkChD;AAgDD;;GAEG;AACH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCxB,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,oBAAoB,CAAC;IACxC,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAiXA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,GACZ,IAAI,IAAI,UAAU,CAAC,OAAO,WAAW,CAAC,CAOxC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAEP"}
@@ -18,12 +18,12 @@
18
18
  * tags: ["llm", "claude", "anthropic", "provider"],
19
19
  * }));
20
20
  *
21
- * const agent = mesh(server, { name: "claude-provider", port: 9011 });
21
+ * const agent = mesh(server, { name: "claude-provider", httpPort: 9011 });
22
22
  * ```
23
23
  */
24
24
  import { z } from "zod";
25
25
  import { createDebug } from "./debug.js";
26
- import { ProviderHandlerRegistry } from "./provider-handlers/index.js";
26
+ import { ProviderHandlerRegistry, makeSchemaStrict } from "./provider-handlers/index.js";
27
27
  const debug = createDebug("llm-provider");
28
28
  // ============================================================================
29
29
  // Vendor Extraction
@@ -91,6 +91,7 @@ export function extractVendorFromModel(model) {
91
91
  if (!model) {
92
92
  return null;
93
93
  }
94
+ // Handle slash format (e.g., "anthropic/claude-sonnet-4-5")
94
95
  if (model.includes("/")) {
95
96
  const vendor = model.split("/")[0].toLowerCase().trim();
96
97
  return vendor || null;
@@ -110,6 +111,7 @@ export function extractVendorFromModel(model) {
110
111
  * ```
111
112
  */
112
113
  export function extractModelName(model) {
114
+ // Handle slash format (e.g., "anthropic/claude-sonnet-4-5")
113
115
  if (model.includes("/")) {
114
116
  return model.split("/").slice(1).join("/");
115
117
  }
@@ -124,7 +126,7 @@ export function extractModelName(model) {
124
126
  * @param vendor - Vendor name (e.g., "anthropic", "openai")
125
127
  * @returns Provider create function or null if not available
126
128
  */
127
- async function loadProvider(vendor) {
129
+ export async function loadProvider(vendor) {
128
130
  // Normalize environment variables for cross-SDK compatibility
129
131
  normalizeEnvVars(vendor);
130
132
  const providerPath = VENDOR_PROVIDERS[vendor];
@@ -240,7 +242,7 @@ const MeshLlmRequestSchema = z.object({
240
242
  * temperature: 0.7,
241
243
  * }));
242
244
  *
243
- * const agent = mesh(server, { name: "claude-provider", port: 9011 });
245
+ * const agent = mesh(server, { name: "claude-provider", httpPort: 9011 });
244
246
  * ```
245
247
  */
246
248
  export function llmProvider(config) {
@@ -259,6 +261,7 @@ export function llmProvider(config) {
259
261
  const { request } = args;
260
262
  const startTime = Date.now();
261
263
  debug(`Processing chat request: messages=${request.messages.length}, tools=${request.tools?.length ?? 0}`);
264
+ debug(`Received model_params keys: ${JSON.stringify(Object.keys(request.model_params ?? {}))}`);
262
265
  // Determine effective model (check for consumer override)
263
266
  let effectiveModel = model;
264
267
  const modelParams = { ...(request.model_params ?? {}) };
@@ -279,6 +282,19 @@ export function llmProvider(config) {
279
282
  debug(`Using model override '${effectiveModel}' (requested by consumer)`);
280
283
  }
281
284
  }
285
+ // Issue #459: Extract output_schema for structured output via generateObject()
286
+ const outputSchema = modelParams.output_schema;
287
+ const outputTypeName = modelParams.output_type_name;
288
+ delete modelParams.output_schema;
289
+ delete modelParams.output_type_name;
290
+ // Build OutputSchema object for handler (prompt formatting) - generateObject uses it directly
291
+ const outputSchemaObj = outputSchema ? {
292
+ schema: outputSchema,
293
+ name: outputTypeName ?? "Response",
294
+ } : null;
295
+ if (outputSchemaObj) {
296
+ debug(`Received output_schema for structured output: ${outputSchemaObj.name}`);
297
+ }
282
298
  const effectiveModelName = extractModelName(effectiveModel);
283
299
  // Load provider if not cached
284
300
  if (!providerLoadAttempted) {
@@ -328,8 +344,9 @@ export function llmProvider(config) {
328
344
  }
329
345
  // Apply vendor-specific request preparation (e.g., Claude prompt caching)
330
346
  // The handler may transform messages or add vendor-specific options
347
+ // Issue #459: Pass output schema so handler can format system prompt appropriately
331
348
  const preparedRequest = handler.prepareRequest(request.messages, null, // tools handled separately for Vercel AI SDK
332
- null, // no output schema for provider passthrough
349
+ outputSchemaObj, // Pass output schema for prompt formatting
333
350
  {
334
351
  temperature: temperature ?? modelParams.temperature,
335
352
  maxOutputTokens: maxTokens ?? modelParams.max_tokens,
@@ -368,34 +385,80 @@ export function llmProvider(config) {
368
385
  requestOptions.topP = modelParams.top_p;
369
386
  }
370
387
  debug(`Calling Vercel AI SDK: model=${effectiveModelName}`);
371
- // Call the model
372
- const result = await generateText(requestOptions);
373
- const latencyMs = Date.now() - startTime;
374
- debug(`LLM response received: ` +
375
- `finishReason=${result.finishReason}, ` +
376
- `toolCalls=${result.toolCalls?.length ?? 0}, ` +
377
- `latency=${latencyMs}ms`);
378
- // Build response
379
- const response = {
380
- role: "assistant",
381
- content: result.text ?? "",
382
- };
383
- // Include tool_calls if present (critical for agentic loop!)
384
- if (result.toolCalls && result.toolCalls.length > 0) {
385
- response.tool_calls = convertToolCalls(result.toolCalls);
388
+ // Issue #459: Use generateObject for structured output based on handler's output mode
389
+ // - "strict" mode: Use generateObject() for native structured output (OpenAI/Gemini)
390
+ // - "hint" mode: Use generateText() with prompt-based JSON instructions (Claude)
391
+ // - "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);
394
+ const useStructuredOutput = outputMode === "strict" && outputSchema && !vercelTools;
395
+ debug(`Output mode: ${outputMode}, useStructuredOutput: ${useStructuredOutput}`);
396
+ let response;
397
+ let latencyMs;
398
+ let resultUsage;
399
+ if (useStructuredOutput) {
400
+ // Use generateObject for structured output
401
+ debug(`Using generateObject for structured output: ${outputTypeName}`);
402
+ const generateObject = aiModule.generateObject;
403
+ // Import jsonSchema helper to wrap JSON Schema for generateObject
404
+ const { jsonSchema } = aiModule;
405
+ // Clean up schema - remove $schema and other meta fields
406
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
407
+ const { $schema, title, ...cleanSchema } = outputSchema;
408
+ // Apply strict constraints recursively to all nested objects
409
+ // This adds additionalProperties: false and required fields at all levels
410
+ // Required for OpenAI/Gemini structured output, and enables future Claude support
411
+ const strictSchema = makeSchemaStrict(cleanSchema, { addAllRequired: true });
412
+ const objectResult = await generateObject({
413
+ model: aiModel,
414
+ messages: convertedMessages,
415
+ schema: jsonSchema(strictSchema),
416
+ schemaName: outputTypeName,
417
+ maxOutputTokens: requestOptions.maxOutputTokens,
418
+ temperature: requestOptions.temperature,
419
+ topP: requestOptions.topP,
420
+ });
421
+ latencyMs = Date.now() - startTime;
422
+ debug(`generateObject response received: ` +
423
+ `finishReason=${objectResult.finishReason}, ` +
424
+ `latency=${latencyMs}ms`);
425
+ // Build response with structured object as JSON string content
426
+ response = {
427
+ role: "assistant",
428
+ content: JSON.stringify(objectResult.object),
429
+ };
430
+ resultUsage = objectResult.usage;
431
+ }
432
+ else {
433
+ // Use generateText for regular text or tool-calling scenarios
434
+ const result = await generateText(requestOptions);
435
+ latencyMs = Date.now() - startTime;
436
+ debug(`LLM response received: ` +
437
+ `finishReason=${result.finishReason}, ` +
438
+ `toolCalls=${result.toolCalls?.length ?? 0}, ` +
439
+ `latency=${latencyMs}ms`);
440
+ // Build response
441
+ response = {
442
+ role: "assistant",
443
+ content: result.text ?? "",
444
+ };
445
+ // Include tool_calls if present (critical for agentic loop!)
446
+ if (result.toolCalls && result.toolCalls.length > 0) {
447
+ response.tool_calls = convertToolCalls(result.toolCalls);
448
+ }
449
+ resultUsage = result.usage;
386
450
  }
387
- // Include usage metadata for cost tracking
388
- if (result.usage) {
389
- const usage = {
390
- prompt_tokens: result.usage.inputTokens ?? 0,
391
- completion_tokens: result.usage.outputTokens ?? 0,
451
+ // Include usage metadata for cost tracking (shared for both paths)
452
+ if (resultUsage) {
453
+ response._mesh_usage = {
454
+ prompt_tokens: resultUsage.inputTokens ?? 0,
455
+ completion_tokens: resultUsage.outputTokens ?? 0,
392
456
  model: effectiveModel,
393
457
  };
394
- response._mesh_usage = usage;
395
458
  }
396
459
  debug(`LLM provider processed request ` +
397
460
  `(model=${effectiveModel}, messages=${request.messages.length}, ` +
398
- `tool_calls=${response.tool_calls?.length ?? 0})`);
461
+ `structured=${useStructuredOutput}, tool_calls=${response.tool_calls?.length ?? 0})`);
399
462
  // Return JSON-stringified response
400
463
  // The consumer (MeshDelegatedProvider.complete) expects content.text to be
401
464
  // a JSON string that it can parse to get the MeshLlmResponse object.