Skip to content

Conversation

@HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Sep 20, 2025

Summary by CodeRabbit

  • New Features

    • Added endpoints to create, update, and run Assistants.
    • Introduced MCP Tool Discovery endpoint.
    • Added endpoint to fetch vector stores by ID.
    • Expanded Assistant capabilities with new request/response payloads and error reporting (e.g., MaestroRunError).
  • Refactor

    • Unified tool definitions across the platform, replacing prior inline/enum tool schemas.
    • Introduced standardized tool resources (Web Search, File Search, HTTP tools) and associated validation structures.
    • Exposed new enums for configuration: AssistantType, BudgetLevel, Visibility, and RunOptimization.
    • Updated public schemas to reference the new tooling model consistently.

@coderabbitai
Copy link

coderabbitai bot commented Sep 20, 2025

Walkthrough

Adds new public API endpoints for Assistants, MCP discovery, and vector-store retrieval; introduces and refactors numerous schemas (Assistant lifecycle requests, tool definitions/resources, enums); updates references to a unified ToolDefinition; augments run result/error handling; and renames/realigns tooling resources within a single OpenAPI file.

Changes

Cohort / File(s) Summary
Assistant endpoints & lifecycle payloads
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. Exposed AssistantType, Visibility, BudgetLevel, RunOptimization. MaestroRunResult augmented with MaestroRunError.
MCP discovery & HTTP tooling schemas
src/libs/AI21/openapi.yaml
Added POST /studio/v1/mcp/discover. Added MCPDefinition, MCPDiscoveryResponse, MCPTool, MCPToolResource. Introduced HTTPToolEndpoint, HTTPToolFunction, HTTPToolFunctionParameters, HTTPToolFunctionParamProperties, HTTPToolResource, HTTPValidationError patterns.
Tooling refactor to unified ToolDefinition
src/libs/AI21/openapi.yaml
Replaced prior ToolDefinition refs with language_studio_api_server__data_types__execution_engine__ToolDefinition (oneOf over HTTP/MCP/FileSearch/WebSearch resources). Renamed ToolResources→ToolResource. Updated Assistant.tools, CreateMaestroRunsPayload.tools/tool_resources, MaestroPayloadType references. Added WebSearchToolResource, FileSearchToolResource.
Vector store retrieval
src/libs/AI21/openapi.yaml
Added GET /studio/v1/demos/regulations/vector-store/{vector_store_id} to fetch by ID.
Additional public structures
src/libs/AI21/openapi.yaml
Added language_studio_api_server__data_types__assistant__Requirement, ...execution_engine__Requirement, and ...chat__ToolDefinition.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant C as Client
  participant API as Studio API
  participant AS as AssistantsService
  participant EE as ExecutionEngine
  participant ST as Storage

  rect rgba(200,240,255,0.4)
    Note over C,API: New Assistant endpoints
    C->>API: POST /studio/v1/assistants (CreateAssistantRequest)
    API->>AS: createAssistant(request)
    AS-->>API: Assistant
    API-->>C: 200 Assistant

    C->>API: PATCH /studio/v1/assistants/{id} (ModifyAssistantRequest)
    API->>AS: modifyAssistant(id, request)
    AS-->>API: Assistant
    API-->>C: 200 Assistant
  end

  rect rgba(220,255,220,0.4)
    C->>API: POST /studio/v1/assistants/{id}/run (RunAssistantRequest)
    API->>EE: runAssistant(id, inputs, tools, resources)
    EE->>ST: fetch tool resources / configs
    ST-->>EE: resources
    EE-->>API: MaestroRunResult | MaestroRunError
    API-->>C: 200 MaestroRunResult
  end

  alt Validation error
    API-->>C: 422 HTTPValidationError
  end
Loading
sequenceDiagram
  autonumber
  participant C as Client
  participant API as Studio API
  participant MCP as MCP Registry/Discovery

  rect rgba(255,245,200,0.4)
    Note over C,API: New MCP discovery endpoint
    C->>API: POST /studio/v1/mcp/discover (MCPDefinition)
    API->>MCP: discover(definition)
    MCP-->>API: MCPDiscoveryResponse (tools, resources)
    API-->>C: 200 MCPDiscoveryResponse
  end

  alt Validation error
    API-->>C: 422 HTTPValidationError
  end
Loading
sequenceDiagram
  autonumber
  participant C as Client
  participant API as Studio API
  participant VS as VectorStoreService
  participant DB as VectorStore DB

  rect rgba(240,240,255,0.4)
    C->>API: GET /studio/v1/demos/regulations/vector-store/{vector_store_id}
    API->>VS: getVectorStore(id)
    VS->>DB: select by id
    DB-->>VS: vector store record
    VS-->>API: vector store
    API-->>C: 200 vector store
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

I twitch my ears at brand-new routes,
Assistants run in tidy boots.
Tools unite in one neat warren,
MCP maps the paths unshorn.
A vector burrow, found by key—
I stamp the ground: ship day glee! 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The title "feat:@coderabbitai" is a terse tag that does not summarize the PR contents; this changeset adds multiple OpenAPI endpoints and schema refactors (assistants endpoints and run, MCP discovery, and tool-definition changes), so the title is too vague to communicate the primary change to reviewers. Please update the PR title to a concise, descriptive sentence that highlights the main change, for example: "feat(openapi): add /studio/v1/assistants endpoints, run support, and MCP discovery; refactor tool schemas".
✅ 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_202509200329

📜 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 11af63e.

⛔ 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 (29)
src/libs/AI21/openapi.yaml (29)

1018-1043: LGTM! Properly structured vector store endpoint.

The new GET endpoint for fetching vector stores by ID is well-structured with appropriate parameters, response types, and error handling patterns consistent with other endpoints in the API.


1520-1541: New Assistant creation endpoint looks complete.

The POST endpoint for creating assistants follows proper RESTful conventions with appropriate request/response schemas and validation error handling.


1589-1617: Modify Assistant endpoint implementation is correct.

The PATCH endpoint uses appropriate HTTP semantics for partial updates and correctly references the request/response schemas.


1618-1647: Assistant run endpoint follows expected patterns.

The POST endpoint for running assistants properly uses the RunAssistantRequest schema and returns MaestroRunResult, maintaining consistency with the existing maestro run endpoints.


1947-1969: MCP Tool Discovery endpoint is well-structured.

The new POST endpoint for MCP discovery follows OpenAPI best practices with proper request/response schema definitions and error handling.


2135-2166: New Assistant properties add comprehensive configuration options.

The additions of requirements, budget, visibility, assistant_type, and response_language fields provide good configurability for assistants. The enum values and defaults appear appropriate.


2241-2247: Clean enum definition for AssistantType.

The three assistant types (default, chat, maestro) provide clear categorization options.


2343-2349: Budget level enum is well-defined.

The low/medium/high budget levels provide intuitive options for resource allocation.


2723-2755: Added 'unset' option to response_language enum is useful.

The addition of 'unset' to the language options provides a clear default state when no specific language preference is set.


2829-2872: CreateAssistantRequest schema is comprehensive.

The schema includes all necessary fields for assistant creation with appropriate types and references. The required fields (only 'name') strike a good balance between mandatory and optional configuration.


2954-2956: Response language enum consistency maintained.

The same language options with 'unset' default are used consistently across different request schemas.


3306-3362: FileSearchToolResource is feature-rich and well-structured.

The schema provides comprehensive configuration options for file search including similarity thresholds, label filtering, retrieval strategies, and language preferences. The enum values and defaults are appropriate.


3401-3485: HTTP Tool schemas follow good OpenAPI practices.

The HTTPToolEndpoint, HTTPToolFunction, HTTPToolFunctionParameters, and HTTPToolResource schemas are well-structured with proper required fields and type definitions for HTTP-based tool integration.


3673-3744: MCP tool schemas are comprehensive.

The MCPDefinition, MCPDiscoveryResponse, MCPTool, and MCPToolResource schemas provide complete structure for Model Context Protocol integration with proper server URL handling and tool discovery.


3752-3760: MaestroRunError provides clear error handling.

The simple error schema with a required message field follows good practices for error representation.


3789-3790: Error field integration in MaestroRunResult is logical.

Adding the optional error field to the run result allows for proper error reporting within the result structure.


3906-3959: ModifyAssistantRequest provides flexible partial updates.

All fields are optional, which is appropriate for a PATCH operation. The schema reuses existing types and enums consistently.


4117-4166: RunAssistantRequest is well-designed.

The schema includes appropriate message input, configuration options, and sensible defaults for the include array. The structure supports the assistant execution workflow effectively.


4167-4172: RunOptimization enum provides clear trade-off options.

The cost vs latency optimization choices give users clear control over execution priorities.


4347-4354: ToolResource schema updated appropriately.

The schema correctly references the new FileSearchToolResource and WebSearchToolResource schemas.


4471-4476: Visibility enum is straightforward and useful.

The public/private visibility options provide necessary access control for assistants.


4477-4494: WebSearchToolResource complements file search capabilities.

The schema provides URL-based search configuration with a fallback option, completing the search tool ecosystem.


4637-4653: Assistant-specific Requirement schema is clean.

The schema includes ID, title, description, and type fields appropriate for assistant requirements.


4654-4667: Chat ToolDefinition maintains function-based structure.

The schema preserves the traditional function-based tool definition for chat contexts.


4668-4683: Execution engine Requirement schema includes mandatory flag.

The is_mandatory boolean field allows for distinguishing between required and optional requirements.


4684-4697: Execution engine ToolDefinition uses discriminated union.

The oneOf structure with discriminator properly handles the different tool types (HTTP, MCP, FileSearch, WebSearch) and their specific schemas. This provides type safety and clear API contracts.


2304-2307: vector_store_id is documented in the endpoint description — no change required.
Found at src/libs/AI21/openapi.yaml lines 2289 and 2307 ("Vector store ID to use for RFI processing").


2898-2898: Resolved — distinct ToolDefinition schemas are intentional

openapi.yaml defines two separate ToolDefinition components: language_studio_api_server__data_types__chat__ToolDefinition (wraps FunctionToolDefinition — see src/libs/AI21/openapi.yaml:4654–4667 and its use at 2472) and language_studio_api_server__data_types__execution_engine__ToolDefinition (discriminated union of HTTP/MCP/FileSearch/WebSearch — see src/libs/AI21/openapi.yaml:4684–4685 and its uses at 2132, 2856, 2898, 3934). Generated C# code and JSON converters under src/libs/AI21/Generated reference both. No change required.


2132-2132: Verify the long ToolDefinition schema and possible duplicate.

The long schema name language_studio_api_server__data_types__execution_engine__ToolDefinition is used in multiple $refs (src/libs/AI21/openapi.yaml:2132, 2856, 3934, 4684) and is defined under components (lines 4637–4684). A separate FunctionToolDefinition is defined at src/libs/AI21/openapi.yaml:3387 (referenced at 4667 and in Generated/AI21.Models.FunctionToolDefinition.Json.g.cs). Confirm whether both forms are intentional (aliasing vs. duplicate) or if the schema should be normalized to a single definition.


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 20, 2025 03:30
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Add Assistants, MCP discovery, vector-store endpoints; schema updates Sep 20, 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.

2 participants