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
5 changes: 5 additions & 0 deletions .changeset/20260921161604-regenerate-sdk-from-openapi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@truefoundry/trueforge-sdk": patch
---

Regenerate SDK from updated OpenAPI spec.
8 changes: 8 additions & 0 deletions .changeset/oss-web-search-providers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@truefoundry/trueforge": minor
"@truefoundry/trueforge-core": minor
"@truefoundry/trueforge-ui": minor
"@truefoundry/trueforge-assistant-ui-runtime": minor
---

Add OSS web-search provider settings and catalog (Parallel): singleton settings/catalog APIs, optional API key, and UI adapter without mode config so built-in web search works outside TrueFoundry mode.
6 changes: 6 additions & 0 deletions .changeset/web-search-settings-ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@truefoundry/trueforge-assistant-ui-runtime": minor
"@truefoundry/trueforge-ui": minor
---

Add web-search provider settings catalog port and Settings UI so admins can configure Parallel web search (API key + mode) in standalone/OIDC deployments.
257 changes: 257 additions & 0 deletions .github/fern/openapi/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -712,6 +712,22 @@
],
"type": "string"
},
"CatalogWebSearchProvider": {
"additionalProperties": false,
"properties": {
"type": {
"description": "Parallel web-search provider.",
"enum": [
"parallel"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"CatalogWellKnownModelProvider": {
"additionalProperties": false,
"properties": {
Expand Down Expand Up @@ -982,6 +998,22 @@
],
"type": "object"
},
"ConfiguredWebSearchProvider": {
"additionalProperties": false,
"properties": {
"manifest": {
"$ref": "#/components/schemas/WebSearchProviderManifest"
},
"name": {
"$ref": "#/components/schemas/ResourceName"
}
},
"required": [
"name",
"manifest"
],
"type": "object"
},
"ContextManagementConfig": {
"default": {
"compaction": {
Expand Down Expand Up @@ -1638,6 +1670,31 @@
],
"type": "object"
},
"GetWebSearchProviderCatalogResponse": {
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/CatalogWebSearchProvider"
},
"type": "array"
}
},
"required": [
"data"
],
"type": "object"
},
"GetWebSearchProviderResponse": {
"properties": {
"data": {
"$ref": "#/components/schemas/ConfiguredWebSearchProvider"
}
},
"required": [
"data"
],
"type": "object"
},
"GitSkill": {
"additionalProperties": false,
"properties": {
Expand Down Expand Up @@ -3313,6 +3370,21 @@
],
"type": "object"
},
"ParallelWebSearchProviderAuth": {
"additionalProperties": false,
"description": "Parallel authentication credentials.",
"properties": {
"api_key": {
"description": "Parallel API key. Responses are redacted; on PUT, a real value sets/rotates and a redacted value keeps the stored key.",
"minLength": 1,
Comment thread
thesujai marked this conversation as resolved.
"type": "string"
}
},
"required": [
"api_key"
],
"type": "object"
},
"PermissionResourceType": {
"description": "Resource type to evaluate permissions for.",
"enum": [
Expand Down Expand Up @@ -5633,6 +5705,18 @@
],
"type": "object"
},
"UpdateWebSearchProviderRequest": {
"additionalProperties": false,
"properties": {
"manifest": {
"$ref": "#/components/schemas/WebSearchProviderManifest"
}
},
"required": [
"manifest"
],
"type": "object"
},
"UserMessage": {
"properties": {
"content": {
Expand Down Expand Up @@ -5769,6 +5853,30 @@
},
"type": "object"
},
"WebSearchProviderManifest": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"auth": {
"$ref": "#/components/schemas/ParallelWebSearchProviderAuth"
},
"type": {
"description": "Parallel web-search provider.",
"enum": [
"parallel"
],
"type": "string"
}
},
"required": [
"type",
"auth"
],
"type": "object"
}
]
},
"ZaiModelProvider": {
"additionalProperties": false,
"properties": {
Expand Down Expand Up @@ -7079,6 +7187,42 @@
"x-fern-sdk-method-name": "list"
}
},
"/api/v1/catalogs/web-search-providers": {
"get": {
"description": "Shipped web-search provider presets.",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetWebSearchProviderCatalogResponse"
}
}
},
"description": "Shipped web-search provider presets."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequestErrorResponse"
}
}
},
"description": "Not authenticated."
}
},
"summary": "List web search providers",
"tags": [
"Web Search Providers"
],
"x-fern-sdk-group-name": [
"catalogs",
"webSearchProviders"
],
"x-fern-sdk-method-name": "list"
}
},
"/api/v1/mcp-servers": {
"get": {
"description": "Configured MCP servers as a slim name/url list for the composer.",
Expand Down Expand Up @@ -9966,6 +10110,116 @@
"x-fern-sdk-method-name": "create_or_update"
}
},
"/api/v1/settings/web-search-providers": {
"get": {
"description": "The configured provider for this tenant. `auth.api_key` is redacted when present.",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetWebSearchProviderResponse"
}
}
},
"description": "The configured web search provider."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequestErrorResponse"
}
}
},
"description": "Invalid Bearer token or auth cookie."
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequestErrorResponse"
}
}
},
"description": "Authenticated but not an admin."
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequestErrorResponse"
}
}
},
"description": "No web search provider configured."
}
},
"summary": "Get the web search provider",
"tags": [
"Web Search Providers"
],
"x-fern-sdk-group-name": [
"settings",
"webSearchProviders"
],
"x-fern-sdk-method-name": "get"
},
"put": {
"description": "Upserts the single web search provider for this tenant. `auth.api_key`: real value sets/rotates; redacted keeps existing (400 if none).",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateWebSearchProviderRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetWebSearchProviderResponse"
}
}
},
"description": "The saved provider."
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequestErrorResponse"
}
}
},
"description": "Invalid request body, or redacted API key with no stored secret to keep."
},
"424": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequestErrorResponse"
}
}
},
"description": "Unsupported operation because web-search providers are managed by an external system"
}
},
"summary": "Create or replace the web search provider",
"tags": [
"Web Search Providers"
],
"x-fern-sdk-group-name": [
"settings",
"webSearchProviders"
],
"x-fern-sdk-method-name": "create_or_update"
}
},
"/api/v1/skills": {
"get": {
"description": "Configured skills as a slim name/description list for the composer.",
Expand Down Expand Up @@ -10077,6 +10331,9 @@
{
"name": "Sandboxes"
},
{
"name": "Web Search Providers"
},
{
"name": "Agents"
},
Expand Down
Loading
Loading