Skip to content

Conversation

HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Sep 19, 2025

Summary by CodeRabbit

  • New Features

    • Create, modify, and run Assistants via new API endpoints.
    • Discover and integrate MCP tools.
    • Support for HTTP-based tools.
    • Retrieve vector store details by ID.
  • Improvements

    • Unified tool model with specialized web and file search resources.
    • Vector store ID now supported across uploads, compliance checks, and RFI processing.
    • Enhanced run error reporting.
    • New options for assistant type, visibility, budget levels, and run optimization.
    • Response language can be left unset by default.

Copy link

coderabbitai bot commented Sep 19, 2025

Walkthrough

Expanded OpenAPI spec adds Assistant lifecycle endpoints, MCP discovery, and a vector-store read. Introduces new tool-definition models (HTTP/MCP/File/Web), new request/response schemas, enums, and error modeling. Propagates vector_store_id to several bodies and updates Assistant schema references and defaults.

Changes

Cohort / File(s) Summary of Changes
New Assistant lifecycle endpoints
src/libs/AI21/openapi.yaml
Added POST /studio/v1/assistants, PATCH /studio/v1/assistants/{assistant_id}, POST /studio/v1/assistants/{assistant_id}/run
MCP discovery endpoint
src/libs/AI21/openapi.yaml
Added POST /studio/v1/mcp/discover
Vector store endpoint
src/libs/AI21/openapi.yaml
Added GET /studio/v1/demos/regulations/vector-store/{vector_store_id}
Assistant request/response models
src/libs/AI21/openapi.yaml
Added CreateAssistantRequest, ModifyAssistantRequest, RunAssistantRequest; updated Assistant fields (response_language default unset; tools reference new execution_engine ToolDefinition)
Tool model rework (execution engine + chat)
src/libs/AI21/openapi.yaml
Introduced language_studio_api_server__data_types__execution_engine__ToolDefinition and ...__chat__ToolDefinition; added ToolResource with specializations: HTTPToolResource, MCPToolResource, FileSearchToolResource, WebSearchToolResource; added HTTPToolEndpoint, HTTPToolFunction, HTTPToolFunctionParameters
MCP types
src/libs/AI21/openapi.yaml
Added MCPDefinition, MCPDiscoveryResponse, MCPTool, MCPToolResource
Enums and organizational types
src/libs/AI21/openapi.yaml
Added BudgetLevel, Visibility, AssistantType, RunOptimization; added Requirement types for assistant and execution_engine
Error model updates
src/libs/AI21/openapi.yaml
MaestroRunResult now includes error field referencing MaestroRunError (new)
Vector store ID propagation in bodies
src/libs/AI21/openapi.yaml
Added vector_store_id to Body_v1_library_upload, Body_upload_check_compliance, Body_process_rfi_document and related payloads
Discriminators/oneOf wiring
src/libs/AI21/openapi.yaml
Updated oneOf/discriminator to route ToolDefinition across HTTP/MCP/File/Web resources; chat-specific ToolDefinition introduced

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Client
  participant API as Studio API
  participant Assistant as Assistant Service
  participant Exec as Execution Engine
  participant Tools as Tool Integrations
  participant VS as Vector Store

  Client->>API: POST /studio/v1/assistants (CreateAssistantRequest)
  API->>Assistant: Create Assistant
  Assistant-->>API: Assistant created
  API-->>Client: Assistant

  Client->>API: PATCH /assistants/{id} (ModifyAssistantRequest)
  API->>Assistant: Update config/tools/enums
  Assistant-->>API: Assistant updated
  API-->>Client: Assistant

  Client->>API: POST /assistants/{id}/run (RunAssistantRequest)
  API->>Exec: Start run (tool defs + optimization)
  par Tool calls
    Exec->>Tools: Invoke HTTP/MCP/File/Web tool
    Tools-->>Exec: Tool result / error
  and Data fetch (optional)
    Exec->>VS: Query by vector_store_id
    VS-->>Exec: Matches
  end
  Exec-->>API: MaestroRunResult (with optional error)
  API-->>Client: Run result
Loading
sequenceDiagram
  autonumber
  actor Client
  participant API as Studio API
  participant MCPDisc as MCP Discovery
  participant MCPHost as MCP Server/Host

  Client->>API: POST /studio/v1/mcp/discover
  API->>MCPDisc: Discover tools
  MCPDisc->>MCPHost: Fetch MCP manifest/definitions
  MCPHost-->>MCPDisc: MCPDefinition(s)
  MCPDisc-->>API: MCPDiscoveryResponse (MCPTool, resources)
  API-->>Client: Discovery result
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

I twitch my ears at endpoints new,
Assistants run, discover too!
Tools align—HTTP, MCP—
A warren of schemas burrowed free.
Vector stores hum, budgets chime,
If errors hop, they’re tagged in time.
Carrot-commit: ship sublime. 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The title "feat:@coderabbitai" is just a tag/mention and does not describe the substantive changes in this pull request; the changeset actually adds Assistant lifecycle endpoints, a tool/resource model refactor, MCP discovery, and vector-store integrations. Because the title is vague and non-descriptive, it does not communicate the primary change to reviewers at a glance. This makes the title inconclusive against the guideline that it should summarize the main change. Please replace the title with a concise, descriptive summary of the primary change. For example: "feat: add assistants API, MCP discovery, and tool/resource model refactor". Avoid bot mentions or unrelated metadata so reviewers can understand the PR intent at a glance.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch bot/update-openapi_202509190633

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fed30ee and 0a71d47.

⛔ Files ignored due to path filters (136)
  • src/libs/AI21/Generated/AI21..JsonSerializerContext.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.GetVectorStoreStudioV1DemosRegulationsVectorStoreVectorStoreIdGet.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.McpToolDiscoveryStudioV1McpDiscoverPost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.UploadCheckComplianceStudioV1DemosRegulationsUploadCheckCompliancePost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.V1ConversationalRag.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.V1CreateAssistant.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.V1MaestroRun.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.V1ModifyAssistant.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.V1RunAssistant.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.GetVectorStoreStudioV1DemosRegulationsVectorStoreVectorStoreIdGet.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.McpToolDiscoveryStudioV1McpDiscoverPost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.UploadCheckComplianceStudioV1DemosRegulationsUploadCheckCompliancePost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.V1ConversationalRag.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.V1CreateAssistant.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.V1MaestroRun.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.V1ModifyAssistant.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.V1RunAssistant.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IJambaCompleteClient.V1ChatComplete.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JambaCompleteClient.V1ChatComplete.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.AssistantResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.AssistantResponseLanguageNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.AssistantType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.AssistantTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.BudgetLevel.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.BudgetLevelNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceLabelsFilterMode.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceLabelsFilterModeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceResponseLanguageNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.HTTPToolFunctionParametersType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.HTTPToolFunctionParametersTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.HTTPToolResourceType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.HTTPToolResourceTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesChatToolDefinitionType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesChatToolDefinitionTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesExecutionEngineToolDefinition.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminatorType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminatorTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.MCPToolResourceType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.MCPToolResourceTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.ModifyAssistantRequestResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.ModifyAssistantRequestResponseLanguageNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.RunAssistantRequestResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.RunAssistantRequestResponseLanguageNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.RunOptimization.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.RunOptimizationNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.Visibility.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.VisibilityNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.WebSearchToolResourceType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonConverters.WebSearchToolResourceTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.JsonSerializerContextTypes.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.Assistant.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.AssistantResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.AssistantType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.BodyUploadCheckComplianceStudioV1DemosRegulationsUploadCheckCompliancePost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.BudgetLevel.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ConversationalRagConfig.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ConversationalRagConfigResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ConversationalRagConfigRetrievalStrategy.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateAssistantRequest.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateAssistantRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateAssistantRequestToolResources.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateAssistantRequestToolResources.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateMaestroRunsPayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateMaestroRunsPayloadResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.FileSearchToolResource.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.FileSearchToolResource.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.FileSearchToolResourceLabelsFilterMode.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.FileSearchToolResourceResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.FileSearchToolResourceType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.GetVectorStoreStudioV1DemosRegulationsVectorStoreVectorStoreIdGetResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.GetVectorStoreStudioV1DemosRegulationsVectorStoreVectorStoreIdGetResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolEndpoint.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolEndpoint.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolEndpointHeaders.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolEndpointHeaders.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunction.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunction.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParamProperties.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParamProperties.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParameters.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParameters.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParametersProperties.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParametersProperties.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParametersType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolResource.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolResource.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolResourceType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesAssistantRequirement.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesAssistantRequirement.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesChatToolDefinition.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesChatToolDefinition.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesChatToolDefinitionType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineRequirement.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineRequirement.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinition.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinition.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminator.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminator.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminatorType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPDefinition.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPDefinition.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPDefinitionHeaders.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPDefinitionHeaders.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPDiscoveryResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPDiscoveryResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPTool.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPTool.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPToolInputSchema.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPToolInputSchema.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPToolResource.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPToolResource.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPToolResourceHeaders.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPToolResourceHeaders.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPToolResourceType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MaestroRunError.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MaestroRunError.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MaestroRunResult.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ModifyAssistantRequest.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ModifyAssistantRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ModifyAssistantRequestResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RunAssistantRequest.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RunAssistantRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RunAssistantRequestOutputType.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RunAssistantRequestOutputType.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RunAssistantRequestResponseLanguage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RunOptimization.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolResource.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolResource.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.Visibility.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WebSearchToolResource.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WebSearchToolResource.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WebSearchToolResourceType.g.cs is excluded by !**/generated/**
📒 Files selected for processing (1)
  • src/libs/AI21/openapi.yaml (23 hunks)
🔇 Additional comments (15)
src/libs/AI21/openapi.yaml (15)

1018-1043: LGTM - New vector store endpoint follows consistent patterns

The new GET /studio/v1/demos/regulations/vector-store/{vector_store_id} endpoint is properly structured with appropriate parameter validation and response schemas. The endpoint follows the existing API conventions for path parameters and error handling.


1520-1541: LGTM - Assistant creation endpoint is well-structured

The new POST /studio/v1/assistants endpoint properly references the CreateAssistantRequest schema and returns the appropriate Assistant response. Error handling with 422 validation errors is consistent with other endpoints.


1589-1617: LGTM - Assistant modification follows REST conventions

The PATCH /studio/v1/assistants/{assistant_id} endpoint correctly uses PATCH for partial updates and references the appropriate ModifyAssistantRequest schema. The response structure is consistent with the creation endpoint.


1618-1647: LGTM - Assistant execution endpoint is properly designed

The POST /studio/v1/assistants/{assistant_id}/run endpoint appropriately returns MaestroRunResult, indicating integration with the existing execution framework. The request structure using RunAssistantRequest is well-defined.


1947-1969: LGTM - MCP discovery endpoint enables dynamic tool integration

The new MCP discovery endpoint POST /studio/v1/mcp/discover provides a clean interface for discovering available tools from MCP servers. The request/response pattern with MCPDefinition and MCPDiscoveryResponse is well-structured.


2304-2307: LGTM - Consistent vector_store_id integration

The addition of vector_store_id fields to multiple request bodies (Body_upload_check_compliance, Body_process_rfi_document) provides consistent vector store routing capabilities. The field descriptions clearly indicate their purpose.

Also applies to: 286-289


2829-2872: LGTM - CreateAssistantRequest schema is comprehensive

The schema includes all necessary fields for assistant creation with appropriate defaults. The budget level defaulting to "medium" and assistant_type defaulting to "default" provide sensible fallbacks.


3306-3362: LGTM - FileSearchToolResource provides rich search capabilities

The schema includes comprehensive search configuration options including similarity thresholds, label filtering, retrieval strategies, and response language settings. The enum values are well-defined and the defaults are appropriate.


3401-3485: LGTM - HTTP tool integration provides flexible external service connectivity

The HTTP tool schemas (HTTPToolEndpoint, HTTPToolFunction, HTTPToolFunctionParameters) provide a robust framework for integrating external HTTP services as tools. The parameter validation structure follows JSON Schema conventions.


3673-3744: LGTM - MCP tool definitions enable server-based tool discovery

The MCP schemas provide clean abstractions for model context protocol integration. The allowed_tools array in MCPToolResource provides necessary security controls for tool access.


3752-3790: LGTM - Error handling enhancement with MaestroRunError

The addition of the error field to MaestroRunResult referencing MaestroRunError improves error reporting capabilities. This provides structured error information for failed assistant runs.


2343-2349: LGTM - Well-designed enumeration types

The new enum types (BudgetLevel, AssistantType, Visibility, RunOptimization) provide clear categorization with meaningful values. The enum values are intuitive and cover the expected use cases.

Also applies to: 2241-2247


4684-4697: Add/verify discriminator 'type' values for ToolDefinition subschemas

  • All four mapped schemas exist in src/libs/AI21/openapi.yaml: FileSearchToolResource (line 3306), HTTPToolResource (line 3469), MCPToolResource (line 3718), WebSearchToolResource (line 4477).
  • No subschema has a visible 'type' const/enum matching the discriminator keys (http, mcp, file_search, web_search). Add a required "type" property with const or enum equal to each mapping value (or confirm this omission is intentional).

2723-2755: Verify 'unset' enum addition is backward-compatible; avoid defaulting requests to 'unset'

  • Location: src/libs/AI21/openapi.yaml (lines 2723–2755) — change adds "unset" to response_language and sets default: unset.
  • Risk: changing enum members or the default can break generated/strict clients and request validation.
  • Actions: if this schema is used in requests, revert the new default (or keep no default); otherwise mark the enum extensible (e.g., x-extensible-enum) or provide a safe "unknown"/fallback in generated SDKs; only start returning new values in responses after clients are tolerant.
  • Validate: run an OpenAPI compatibility check (oasdiff/openapi-diff), update changelog/SDKs, and consider an API version bump if this is breaking.

2129-2166: Tool definition migration verified — no action required

OpenAPI and generated models use language_studio_api_server__data_types__execution_engine__ToolDefinition and there are no leftover references to a legacy "AssistantTool"; AssistantToolResource remains. Key locations: src/libs/AI21/openapi.yaml (refs at ~2132, 2472, 2856, 2898, 3934; component at ~4684) and src/libs/AI21/Generated/* (LanguageStudioApiServerDataTypesExecutionEngineToolDefinition*.g.cs and related JsonConverters).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot enabled auto-merge September 19, 2025 06:34
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Expand OpenAPI: Assistant lifecycle, MCP discovery, vector-store read Sep 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant