Add support for full web search config

This commit is contained in:
Rohan Mehta
2026-03-05 22:30:52 -05:00
parent 7a5aff4972
commit b2263a7db6
20 changed files with 819 additions and 2 deletions

View File

@@ -9595,6 +9595,16 @@
"type": "null"
}
]
},
"web_search_config": {
"anyOf": [
{
"$ref": "#/definitions/v2/WebSearchConfig"
},
{
"type": "null"
}
]
}
},
"type": "object"
@@ -11998,6 +12008,16 @@
"type": "null"
}
]
},
"web_search_config": {
"anyOf": [
{
"$ref": "#/definitions/v2/WebSearchConfig"
},
{
"type": "null"
}
]
}
},
"type": "object"
@@ -16330,6 +16350,65 @@
}
]
},
"WebSearchConfig": {
"additionalProperties": false,
"properties": {
"filters": {
"anyOf": [
{
"$ref": "#/definitions/v2/WebSearchFilters"
},
{
"type": "null"
}
]
},
"search_context_size": {
"anyOf": [
{
"$ref": "#/definitions/v2/WebSearchContextSize"
},
{
"type": "null"
}
]
},
"user_location": {
"anyOf": [
{
"$ref": "#/definitions/v2/WebSearchUserLocation"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"WebSearchContextSize": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"WebSearchFilters": {
"additionalProperties": false,
"properties": {
"allowed_domains": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"WebSearchMode": {
"enum": [
"disabled",
@@ -16338,6 +16417,50 @@
],
"type": "string"
},
"WebSearchUserLocation": {
"additionalProperties": false,
"properties": {
"city": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"region": {
"type": [
"string",
"null"
]
},
"timezone": {
"type": [
"string",
"null"
]
},
"type": {
"allOf": [
{
"$ref": "#/definitions/v2/WebSearchUserLocationType"
}
],
"default": "approximate"
}
},
"type": "object"
},
"WebSearchUserLocationType": {
"enum": [
"approximate"
],
"type": "string"
},
"WindowsSandboxSetupCompletedNotification": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {

View File

@@ -2635,6 +2635,16 @@
"type": "null"
}
]
},
"web_search_config": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchConfig"
},
{
"type": "null"
}
]
}
},
"type": "object"
@@ -8655,6 +8665,16 @@
"type": "null"
}
]
},
"web_search_config": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchConfig"
},
{
"type": "null"
}
]
}
},
"type": "object"
@@ -14586,6 +14606,65 @@
}
]
},
"WebSearchConfig": {
"additionalProperties": false,
"properties": {
"filters": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchFilters"
},
{
"type": "null"
}
]
},
"search_context_size": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchContextSize"
},
{
"type": "null"
}
]
},
"user_location": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchUserLocation"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"WebSearchContextSize": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"WebSearchFilters": {
"additionalProperties": false,
"properties": {
"allowed_domains": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"WebSearchMode": {
"enum": [
"disabled",
@@ -14594,6 +14673,50 @@
],
"type": "string"
},
"WebSearchUserLocation": {
"additionalProperties": false,
"properties": {
"city": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"region": {
"type": [
"string",
"null"
]
},
"timezone": {
"type": [
"string",
"null"
]
},
"type": {
"allOf": [
{
"$ref": "#/definitions/WebSearchUserLocationType"
}
],
"default": "approximate"
}
},
"type": "object"
},
"WebSearchUserLocationType": {
"enum": [
"approximate"
],
"type": "string"
},
"WindowsSandboxSetupCompletedNotification": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {

View File

@@ -352,6 +352,16 @@
"type": "null"
}
]
},
"web_search_config": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchConfig"
},
{
"type": "null"
}
]
}
},
"type": "object"
@@ -637,6 +647,16 @@
"type": "null"
}
]
},
"web_search_config": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchConfig"
},
{
"type": "null"
}
]
}
},
"type": "object"
@@ -738,6 +758,65 @@
],
"type": "string"
},
"WebSearchConfig": {
"additionalProperties": false,
"properties": {
"filters": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchFilters"
},
{
"type": "null"
}
]
},
"search_context_size": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchContextSize"
},
{
"type": "null"
}
]
},
"user_location": {
"anyOf": [
{
"$ref": "#/definitions/WebSearchUserLocation"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"WebSearchContextSize": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"WebSearchFilters": {
"additionalProperties": false,
"properties": {
"allowed_domains": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"WebSearchMode": {
"enum": [
"disabled",
@@ -745,6 +824,50 @@
"live"
],
"type": "string"
},
"WebSearchUserLocation": {
"additionalProperties": false,
"properties": {
"city": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"region": {
"type": [
"string",
"null"
]
},
"timezone": {
"type": [
"string",
"null"
]
},
"type": {
"allOf": [
{
"$ref": "#/definitions/WebSearchUserLocationType"
}
],
"default": "approximate"
}
},
"type": "object"
},
"WebSearchUserLocationType": {
"enum": [
"approximate"
],
"type": "string"
}
},
"properties": {

View File

@@ -0,0 +1,8 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { WebSearchContextSize } from "./WebSearchContextSize";
import type { WebSearchFilters } from "./WebSearchFilters";
import type { WebSearchUserLocation } from "./WebSearchUserLocation";
export type WebSearchConfig = { filters: WebSearchFilters | null, user_location: WebSearchUserLocation | null, search_context_size: WebSearchContextSize | null, };

View File

@@ -0,0 +1,5 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type WebSearchContextSize = "low" | "medium" | "high";

View File

@@ -0,0 +1,5 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type WebSearchFilters = { allowed_domains: Array<string> | null, };

View File

@@ -0,0 +1,6 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { WebSearchUserLocationType } from "./WebSearchUserLocationType";
export type WebSearchUserLocation = { type: WebSearchUserLocationType, country: string | null, region: string | null, city: string | null, timezone: string | null, };

View File

@@ -0,0 +1,5 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type WebSearchUserLocationType = "approximate";

View File

@@ -211,7 +211,12 @@ export type { ViewImageToolCallEvent } from "./ViewImageToolCallEvent";
export type { WarningEvent } from "./WarningEvent";
export type { WebSearchAction } from "./WebSearchAction";
export type { WebSearchBeginEvent } from "./WebSearchBeginEvent";
export type { WebSearchConfig } from "./WebSearchConfig";
export type { WebSearchContextSize } from "./WebSearchContextSize";
export type { WebSearchEndEvent } from "./WebSearchEndEvent";
export type { WebSearchFilters } from "./WebSearchFilters";
export type { WebSearchItem } from "./WebSearchItem";
export type { WebSearchMode } from "./WebSearchMode";
export type { WebSearchUserLocation } from "./WebSearchUserLocation";
export type { WebSearchUserLocationType } from "./WebSearchUserLocationType";
export * as v2 from "./v2";

View File

@@ -6,6 +6,7 @@ import type { ReasoningEffort } from "../ReasoningEffort";
import type { ReasoningSummary } from "../ReasoningSummary";
import type { ServiceTier } from "../ServiceTier";
import type { Verbosity } from "../Verbosity";
import type { WebSearchConfig } from "../WebSearchConfig";
import type { WebSearchMode } from "../WebSearchMode";
import type { JsonValue } from "../serde_json/JsonValue";
import type { AnalyticsConfig } from "./AnalyticsConfig";
@@ -15,4 +16,4 @@ import type { SandboxMode } from "./SandboxMode";
import type { SandboxWorkspaceWrite } from "./SandboxWorkspaceWrite";
import type { ToolsV2 } from "./ToolsV2";
export type Config = {model: string | null, review_model: string | null, model_context_window: bigint | null, model_auto_compact_token_limit: bigint | null, model_provider: string | null, approval_policy: AskForApproval | null, sandbox_mode: SandboxMode | null, sandbox_workspace_write: SandboxWorkspaceWrite | null, forced_chatgpt_workspace_id: string | null, forced_login_method: ForcedLoginMethod | null, web_search: WebSearchMode | null, tools: ToolsV2 | null, profile: string | null, profiles: { [key in string]?: ProfileV2 }, instructions: string | null, developer_instructions: string | null, compact_prompt: string | null, model_reasoning_effort: ReasoningEffort | null, model_reasoning_summary: ReasoningSummary | null, model_verbosity: Verbosity | null, service_tier: ServiceTier | null, analytics: AnalyticsConfig | null} & ({ [key in string]?: number | string | boolean | Array<JsonValue> | { [key in string]?: JsonValue } | null });
export type Config = {model: string | null, review_model: string | null, model_context_window: bigint | null, model_auto_compact_token_limit: bigint | null, model_provider: string | null, approval_policy: AskForApproval | null, sandbox_mode: SandboxMode | null, sandbox_workspace_write: SandboxWorkspaceWrite | null, forced_chatgpt_workspace_id: string | null, forced_login_method: ForcedLoginMethod | null, web_search: WebSearchMode | null, web_search_config: WebSearchConfig | null, tools: ToolsV2 | null, profile: string | null, profiles: { [key in string]?: ProfileV2 }, instructions: string | null, developer_instructions: string | null, compact_prompt: string | null, model_reasoning_effort: ReasoningEffort | null, model_reasoning_summary: ReasoningSummary | null, model_verbosity: Verbosity | null, service_tier: ServiceTier | null, analytics: AnalyticsConfig | null} & ({ [key in string]?: number | string | boolean | Array<JsonValue> | { [key in string]?: JsonValue } | null });

View File

@@ -5,8 +5,9 @@ import type { ReasoningEffort } from "../ReasoningEffort";
import type { ReasoningSummary } from "../ReasoningSummary";
import type { ServiceTier } from "../ServiceTier";
import type { Verbosity } from "../Verbosity";
import type { WebSearchConfig } from "../WebSearchConfig";
import type { WebSearchMode } from "../WebSearchMode";
import type { JsonValue } from "../serde_json/JsonValue";
import type { AskForApproval } from "./AskForApproval";
export type ProfileV2 = { model: string | null, model_provider: string | null, approval_policy: AskForApproval | null, service_tier: ServiceTier | null, model_reasoning_effort: ReasoningEffort | null, model_reasoning_summary: ReasoningSummary | null, model_verbosity: Verbosity | null, web_search: WebSearchMode | null, chatgpt_base_url: string | null, } & ({ [key in string]?: number | string | boolean | Array<JsonValue> | { [key in string]?: JsonValue } | null });
export type ProfileV2 = { model: string | null, model_provider: string | null, approval_policy: AskForApproval | null, service_tier: ServiceTier | null, model_reasoning_effort: ReasoningEffort | null, model_reasoning_summary: ReasoningSummary | null, model_verbosity: Verbosity | null, web_search: WebSearchMode | null, web_search_config: WebSearchConfig | null, chatgpt_base_url: string | null, } & ({ [key in string]?: number | string | boolean | Array<JsonValue> | { [key in string]?: JsonValue } | null });