Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ public class ResponsesRequestToolsItemsJsonConverter : global::System.Text.Json.
var __score15 = 0;
if (__jsonProps.Contains("parameters")) __score15++;
if (__jsonProps.Contains("parameters.analysis_models")) __score15++;
if (__jsonProps.Contains("parameters.max_tool_calls")) __score15++;
if (__jsonProps.Contains("parameters.model")) __score15++;
if (__jsonProps.Contains("type")) __score15++;
var __score16 = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ public sealed partial class ChatRequestPluginsItemsVariant4
[global::System.Text.Json.Serialization.JsonPropertyName("enabled")]
public bool? Enabled { get; set; }

/// <summary>
/// Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("max_tool_calls")]
public int? MaxToolCalls { get; set; }

/// <summary>
/// Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset.
/// </summary>
Expand All @@ -51,6 +57,9 @@ public sealed partial class ChatRequestPluginsItemsVariant4
/// <param name="enabled">
/// Set to false to disable the fusion plugin for this request. Defaults to true.
/// </param>
/// <param name="maxToolCalls">
/// Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.
/// </param>
/// <param name="model">
/// Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset.
/// </param>
Expand All @@ -61,11 +70,13 @@ public ChatRequestPluginsItemsVariant4(
global::OpenRouter.ChatRequestPluginsItemsVariant4Id id,
global::System.Collections.Generic.IList<string>? analysisModels,
bool? enabled,
int? maxToolCalls,
string? model)
{
this.Id = id;
this.AnalysisModels = analysisModels;
this.Enabled = enabled;
this.MaxToolCalls = maxToolCalls;
this.Model = model;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ public sealed partial class FusionServerToolConfig
[global::System.Text.Json.Serialization.JsonPropertyName("analysis_models")]
public global::System.Collections.Generic.IList<string>? AnalysisModels { get; set; }

/// <summary>
/// Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("max_tool_calls")]
public int? MaxToolCalls { get; set; }

/// <summary>
/// Slug of the judge model that produces the structured analysis JSON. Defaults to the model used in the outer API request.
/// </summary>
Expand All @@ -32,6 +38,9 @@ public sealed partial class FusionServerToolConfig
/// <param name="analysisModels">
/// Slugs of models to run in parallel as the analysis panel. Each model receives the user prompt with openrouter:web_search and openrouter:web_fetch enabled, then a judge model summarizes the collective output into structured analysis JSON. Capped at 8 models to bound cost amplification. Defaults to the Quality preset from /labs/fusion.
/// </param>
/// <param name="maxToolCalls">
/// Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.
/// </param>
/// <param name="model">
/// Slug of the judge model that produces the structured analysis JSON. Defaults to the model used in the outer API request.
/// </param>
Expand All @@ -40,9 +49,11 @@ public sealed partial class FusionServerToolConfig
#endif
public FusionServerToolConfig(
global::System.Collections.Generic.IList<string>? analysisModels,
int? maxToolCalls,
string? model)
{
this.AnalysisModels = analysisModels;
this.MaxToolCalls = maxToolCalls;
this.Model = model;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ public sealed partial class MessagesRequestPluginsItemsVariant4
[global::System.Text.Json.Serialization.JsonPropertyName("enabled")]
public bool? Enabled { get; set; }

/// <summary>
/// Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("max_tool_calls")]
public int? MaxToolCalls { get; set; }

/// <summary>
/// Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset.
/// </summary>
Expand All @@ -51,6 +57,9 @@ public sealed partial class MessagesRequestPluginsItemsVariant4
/// <param name="enabled">
/// Set to false to disable the fusion plugin for this request. Defaults to true.
/// </param>
/// <param name="maxToolCalls">
/// Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.
/// </param>
/// <param name="model">
/// Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset.
/// </param>
Expand All @@ -61,11 +70,13 @@ public MessagesRequestPluginsItemsVariant4(
global::OpenRouter.MessagesRequestPluginsItemsVariant4Id id,
global::System.Collections.Generic.IList<string>? analysisModels,
bool? enabled,
int? maxToolCalls,
string? model)
{
this.Id = id;
this.AnalysisModels = analysisModels;
this.Enabled = enabled;
this.MaxToolCalls = maxToolCalls;
this.Model = model;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ public sealed partial class ResponsesRequestPluginsItemsVariant4
[global::System.Text.Json.Serialization.JsonPropertyName("enabled")]
public bool? Enabled { get; set; }

/// <summary>
/// Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("max_tool_calls")]
public int? MaxToolCalls { get; set; }

/// <summary>
/// Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset.
/// </summary>
Expand All @@ -51,6 +57,9 @@ public sealed partial class ResponsesRequestPluginsItemsVariant4
/// <param name="enabled">
/// Set to false to disable the fusion plugin for this request. Defaults to true.
/// </param>
/// <param name="maxToolCalls">
/// Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.
/// </param>
/// <param name="model">
/// Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset.
/// </param>
Expand All @@ -61,11 +70,13 @@ public ResponsesRequestPluginsItemsVariant4(
global::OpenRouter.ResponsesRequestPluginsItemsVariant4Id id,
global::System.Collections.Generic.IList<string>? analysisModels,
bool? enabled,
int? maxToolCalls,
string? model)
{
this.Id = id;
this.AnalysisModels = analysisModels;
this.Enabled = enabled;
this.MaxToolCalls = maxToolCalls;
this.Model = model;
}

Expand Down
16 changes: 16 additions & 0 deletions src/libs/OpenRouter/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7685,6 +7685,10 @@
"type": "boolean",
"description": "Set to false to disable the fusion plugin for this request. Defaults to true."
},
"max_tool_calls": {
"type": "integer",
"description": "Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16."
},
"model": {
"type": "string",
"description": "Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset."
Expand Down Expand Up @@ -9778,6 +9782,10 @@
},
"description": "Slugs of models to run in parallel as the analysis panel. Each model receives the user prompt with openrouter:web_search and openrouter:web_fetch enabled, then a judge model summarizes the collective output into structured analysis JSON. Capped at 8 models to bound cost amplification. Defaults to the Quality preset from /labs/fusion."
},
"max_tool_calls": {
"type": "integer",
"description": "Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16."
},
"model": {
"type": "string",
"description": "Slug of the judge model that produces the structured analysis JSON. Defaults to the model used in the outer API request."
Expand Down Expand Up @@ -15608,6 +15616,10 @@
"type": "boolean",
"description": "Set to false to disable the fusion plugin for this request. Defaults to true."
},
"max_tool_calls": {
"type": "integer",
"description": "Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16."
},
"model": {
"type": "string",
"description": "Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset."
Expand Down Expand Up @@ -22488,6 +22500,10 @@
"type": "boolean",
"description": "Set to false to disable the fusion plugin for this request. Defaults to true."
},
"max_tool_calls": {
"type": "integer",
"description": "Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16."
},
"model": {
"type": "string",
"description": "Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset."
Expand Down