Skip to content

feat:Refactor OpenAPI Spec: Add Endpoints and Enhance Tool Modeling#202

Open
HavenDV wants to merge 1 commit intomainfrom
bot/update-openapi_202509190924
Open

feat:Refactor OpenAPI Spec: Add Endpoints and Enhance Tool Modeling#202
HavenDV wants to merge 1 commit intomainfrom
bot/update-openapi_202509190924

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 MCP tools
    • Generate requirements and thread names
    • Start Maestro runs
    • Retrieve regulation vector stores by ID
  • Enhancements

    • Expanded tool ecosystem with HTTP, file search, and web search resources
    • New enums for assistant type, budget, visibility, optimization; response language supports “unset”
    • vector_store_id added to uploads and RFI-related flows
    • Run results now include error details
  • Refactor

    • Unified, more modular tool/resource model across Assistant APIs

@coderabbitai
Copy link

coderabbitai bot commented Sep 19, 2025

Walkthrough

The OpenAPI spec for Studio was extensively refactored. New assistant, MCP discovery, generation, maestro run, and vector-store endpoints were added. Tool modeling shifted to a union-based ToolDefinition and ToolResource system with new HTTP/MCP/file/web search types. Schemas, enums, and namespaces were reorganized; several payloads gained vector_store_id.

Changes

Cohort / File(s) Summary of Changes
Assistants endpoints & schemas
src/libs/AI21/openapi.yaml
Added POST /studio/v1/assistants, PATCH /studio/v1/assistants/{assistant_id}, POST /studio/v1/assistants/{assistant_id}/run; introduced CreateAssistantRequest, ModifyAssistantRequest, RunAssistantRequest; Assistant.tools now references execution-engine ToolDefinition; Assistant.tool_resources updated.
MCP discovery
src/libs/AI21/openapi.yaml
Added POST /studio/v1/mcp/discover; introduced MCPDefinition, MCPDiscoveryResponse, MCPTool, MCPToolResource.
Generation endpoints
src/libs/AI21/openapi.yaml
Added POST /studio/v1/generation/requirements and /studio/v1/generation/thread-name with corresponding request/response schemas.
Maestro runs & results
src/libs/AI21/openapi.yaml
Added POST /studio/v1/maestro/runs; MaestroRunResult extended with error field; MaestroRunError added.
Vector store demo endpoint
src/libs/AI21/openapi.yaml
Added GET /studio/v1/demos/regulations/vector-store/{vector_store_id}` with operationId get_vector_store_studio_v1_demos_regulations_vector_store__vector_store_id__get.
Tool modeling refactor
src/libs/AI21/openapi.yaml
Replaced AssistantTool/old ToolDefinition with union-based language_studio_api_server__data_types__execution_engine__ToolDefinition (http, mcp, file_search, web_search via discriminator); introduced ToolResource (renamed from ToolResources); added FileSearchToolResource, WebSearchToolResource; chat-specific ToolDefinition added.
HTTP tool types
src/libs/AI21/openapi.yaml
Added HTTPToolEndpoint, HTTPToolFunction, HTTPToolResource, HTTPValidationError; updated HTTP-related error/validation shapes.
Payload augmentations
src/libs/AI21/openapi.yaml
Added vector_store_id to multiple bodies (e.g., Body_upload_check_compliance_studio_v1_demos_regulations_upload_check_compliance_post, Body_v1_library_upload) and related RFI payloads.
Namespace realignment
src/libs/AI21/openapi.yaml
Moved many schema references to language_studio_api_server__data_types__... namespaces; added execution_engine and assistant requirement types.
Enums and language fields
src/libs/AI21/openapi.yaml
Added AssistantType, BudgetLevel, Visibility, RunOptimization, RetrievalStrategy; response_language enums extended to include unset.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Client
  participant API as Studio API
  participant Assist as Assistant Service
  participant Exec as Execution Engine
  participant Tools as Tools (HTTP/MCP/File/Web)

  rect rgba(230,246,255,0.6)
  note over Client,API: Create/Modify Assistant
  Client->>API: POST /studio/v1/assistants (CreateAssistantRequest)
  API->>Assist: Create Assistant (models, tools, tool_resources)
  Assist-->>API: Assistant
  Client->>API: PATCH /studio/v1/assistants/{id} (ModifyAssistantRequest)
  API->>Assist: Update Assistant
  Assist-->>API: Assistant
  end

  rect rgba(240,255,240,0.6)
  note over Client,API: Run Assistant
  Client->>API: POST /studio/v1/assistants/{id}/run (RunAssistantRequest)
  API->>Exec: Start run (requirements, optimization)
  Exec->>Tools: Invoke tool via ToolDefinition (http|mcp|file_search|web_search)
  Tools-->>Exec: Results / Errors
  Exec-->>API: MaestroRunResult (may include error)
  API-->>Client: MaestroRunResult
  end
Loading
sequenceDiagram
  autonumber
  actor Client
  participant API as Studio API
  participant MCP as MCP Discovery

  note over Client,API: MCP Tool Discovery
  Client->>API: POST /studio/v1/mcp/discover (MCPDefinition)
  API->>MCP: Discover tools
  MCP-->>API: MCPDiscoveryResponse (tools, resources)
  API-->>Client: MCPDiscoveryResponse
Loading
sequenceDiagram
  autonumber
  actor Client
  participant API as Studio API
  participant Gen as Generation Service

  note over Client,API: Generation utilities
  Client->>API: POST /studio/v1/generation/requirements
  API->>Gen: Generate requirements
  Gen-->>API: RequirementsGenerationResponse
  API-->>Client: RequirementsGenerationResponse

  Client->>API: POST /studio/v1/generation/thread-name
  API->>Gen: Generate thread name
  Gen-->>API: ThreadNameGenerationResponse
  API-->>Client: ThreadNameGenerationResponse
Loading
sequenceDiagram
  autonumber
  actor Client
  participant API as Studio API
  participant Demo as Regulations Demo

  note over Client,API: Vector Store retrieval
  Client->>API: GET /studio/v1/demos/regulations/vector-store/{vector_store_id}
  API->>Demo: Fetch vector store
  Demo-->>API: Vector store details
  API-->>Client: Response
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60–90 minutes

Poem

I thump my paws—new routes appear, hooray!
Tools now wear shiny unions on display.
MCP knocks, HTTP sings,
Maestro conducts with error strings.
A vector store hop, requirements bloom—
I nibble schemas, refactors zoom! 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title "feat:@coderabbitai" is an author/bot tag and does not describe the substantive changes in this PR (a large OpenAPI refactor introducing new tool/resource schemas and multiple assistants/MCP/maestro endpoints), so it fails the requirement for a concise, informative title that highlights the primary change. Reviewers scanning history would not understand the PR intent from the current title. Please rename the PR to a short, specific summary of the main change, for example "refactor(studio-api): ToolDefinition/ToolResource refactor and add assistants, MCP & maestro endpoints" or "feat(studio): refactor tool modeling and add assistants/MCP endpoints", then re-run the checks.
✅ 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_202509190924

📜 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 f09c100.

⛔ 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 on the new vector store endpoint.

The new GET endpoint for vector store retrieval is properly structured with appropriate path parameters and standard error handling.


1520-1541: LGTM on the assistant creation endpoint.

The POST endpoint for creating assistants is well-structured with proper request/response schema references and standard error handling.


1589-1617: LGTM on the assistant modification endpoint.

The PATCH endpoint for modifying assistants follows proper REST conventions and references the correct schemas.


1618-1647: LGTM on the assistant run endpoint.

The POST endpoint for running assistants is properly configured with appropriate request/response schemas.


1947-1969: LGTM on the MCP discovery endpoint.

The MCP tool discovery endpoint is properly structured with clear request/response schema references.


2304-2307: Document the vector_store_id parameter addition.

The vector_store_id field has been added to the compliance upload payload. This is a valuable enhancement for vector store integration.


2723-2756: Good enhancement to retrieval strategy and language options.

The addition of unset to response language enums and the proper typing of RetrievalStrategy improves API flexibility. The enum approach for RetrievalStrategy is more robust than previous string-based implementations.


2829-2872: LGTM on the CreateAssistantRequest schema.

The schema is well-structured with appropriate required fields, optional parameters, and proper type references. The use of BudgetLevel and AssistantType enums promotes consistency.


2898-2909: Tool definition reference consistency maintained.

The consistent use of language_studio_api_server__data_types__execution_engine__ToolDefinition and related requirement types across different payloads ensures schema coherence.


3306-3362: LGTM on the FileSearchToolResource schema.

The schema provides comprehensive file search capabilities with proper enum values, filtering options, and language support. The addition of unset to response language maintains consistency with other schemas.


3401-3485: LGTM on the HTTP tool schemas.

The HTTPToolResource, HTTPToolFunction, and related schemas provide a solid foundation for HTTP-based tool integrations with proper parameter validation and endpoint configuration.


3673-3744: LGTM on the MCP tool schemas.

The MCP (Model Context Protocol) schemas are well-designed with proper server configuration, tool discovery, and optional tool filtering capabilities.


4477-4494: LGTM on the WebSearchToolResource schema.

The schema properly defines web search capabilities with URL configuration and fallback options. The type property with default value follows the discriminator pattern correctly.


2132-2132: Verify backward compatibility of Assistant.tools schema change. Assistant.tools now $ref's language_studio_api_server__data_types__execution_engine__ToolDefinition — confirm this doesn't break clients expecting the prior ToolDefinition (chat). Found refs at src/libs/AI21/openapi.yaml:2132, 2856, 2898, 3934 and schema defs at 4654–4667 (language_studio_api_server__data_types__chat__ToolDefinition) and 4684–4685 (language_studio_api_server__data_types__execution_engine__ToolDefinition); FunctionToolDefinition at 3387–3388 may be related. If shapes differ, add a compatibility alias or restore the previous schema and document the breaking change.


4684-4697: Verify discriminator implementation for ToolDefinition variants

Ensure each referenced schema (HTTPToolResource, MCPToolResource, FileSearchToolResource, WebSearchToolResource) declares a top-level "type" property with a const value matching the discriminator mapping (http, mcp, file_search, web_search) so oneOf resolution cannot match multiple variants. Location: src/libs/AI21/openapi.yaml (lines 4684-4697).


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 09:25
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Refactor OpenAPI Spec: Add Endpoints and Enhance Tool Modeling 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

Comments