Skip to content

Conversation

@HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Sep 20, 2025

Summary by CodeRabbit

  • New Features

    • Added endpoints to create, modify, and run Assistants, discover MCP tools, and fetch vector stores by ID.
    • Expanded Assistant options: requirements, budget levels, visibility, assistant type, and response language.
    • Added HTTP, file search, and web search tool integrations; enhanced run results with error details.
    • Added vector_store_id support across relevant requests.
  • Refactor

    • Standardized tool and resource definitions across HTTP, MCP, file, and web search tools (may require client updates).
  • Documentation

    • Updated endpoint summaries and descriptions.

@coderabbitai
Copy link

coderabbitai bot commented Sep 20, 2025

Walkthrough

Added new Assistant and MCP discovery endpoints; expanded Assistant schemas and enums; overhauled tool/resource definitions (HTTP, MCP, file/web search); added run-related request/response types with error handling; introduced vector store fetch endpoint; propagated vector_store_id; updated operationIds and descriptions within the OpenAPI spec.

Changes

Cohort / File(s) Summary of Changes
Assistant endpoints (create/modify/run)
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 schema extended (requirements, budget, visibility, assistant_type, response_language); RunOptimization enum; MaestroRunResult now includes error (MaestroRunError).
MCP discovery
src/libs/AI21/openapi.yaml
Added POST /studio/v1/mcp/discover; introduced MCPDefinition, MCPDiscoveryResponse, MCPTool, MCPToolResource; wired into tool/resource unions.
Tooling model overhaul
src/libs/AI21/openapi.yaml
Replaced generic ToolDefinition/ToolResources with language_studio_api_server__data_types__execution_engine__ToolDefinition union over HTTPToolResource, MCPToolResource, FileSearchToolResource, WebSearchToolResource; added HTTPToolEndpoint, HTTPToolFunction, HTTPToolFunctionParameters, HTTPValidationError; renamed ToolResources -> ToolResource; updated references throughout.
Vector store and retrieval updates
src/libs/AI21/openapi.yaml
Added GET /studio/v1/demos/regulations/vector-store/{vector_store_id}; propagated vector_store_id in relevant payloads; adjusted RetrievalStrategy composition (allOf).
Documentation and identifiers
src/libs/AI21/openapi.yaml
Updated operationIds, summaries, and descriptions to reflect new actions and flows; aligned schema names and references.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Client
  participant API as Studio API
  participant Assist as Assistant Service
  participant Tools as Tool Registry
  participant MCP as MCP Discovery
  participant Exec as Execution Engine
  participant VS as Vector Store

  rect rgba(200,230,255,0.3)
    note over Client,API: Assistant lifecycle (create → modify → run)
    Client->>API: POST /assistants (CreateAssistantRequest)
    API->>Assist: Create assistant
    Assist-->>API: Assistant
    API-->>Client: Assistant
    Client->>API: PATCH /assistants/{id} (ModifyAssistantRequest)
    API->>Assist: Modify assistant
    Assist-->>API: Assistant
    API-->>Client: Assistant
  end

  rect rgba(220,255,220,0.3)
    note over Client,API: Run with tools and vector store
    Client->>API: POST /assistants/{id}/run (RunAssistantRequest)
    API->>Assist: Start run
    Assist->>Tools: Resolve tool definitions
    alt Needs MCP discovery [New]
      Tools->>API: POST /mcp/discover
      API->>MCP: Discover tools
      MCP-->>API: MCPDiscoveryResponse
      API-->>Tools: Tools catalog
    end
    Assist->>Exec: Execute plan (opts: cost/latency)
    opt Retrieval
      Exec->>VS: Fetch by vector_store_id
      VS-->>Exec: Results
    end
    Exec-->>Assist: MaestroRunResult or error
    Assist-->>API: Run result (may include MaestroRunError)
    API-->>Client: RunAssistantResponse
  end
Loading
sequenceDiagram
  autonumber
  actor Client
  participant API as Studio API
  participant VS as Vector Store Service

  note over Client,API: Vector store fetch [New]
  Client->>API: GET /demos/regulations/vector-store/{vector_store_id}
  API->>VS: Fetch by ID
  VS-->>API: Vector store
  API-->>Client: 200 OK (vector store)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

I twitch my ears at schemas new,
Tools hop in—HTTP, MCP too!
Assistants born, then sprint and run,
With vector trails beneath the sun.
If errors thump, we’ll course-correct—
A rabbit’s review: precise, direct.
Carrots for every perfect spec! 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The PR title "feat:@coderabbitai" is a tag-like handle that does not describe the substantive changes in this changeset. The diff primarily updates src/libs/AI21/openapi.yaml to add multiple Assistant endpoints (create, modify, run), MCP discovery endpoints, new HTTP/MCP/File/Web tool resource schemas and enums, and a refactor of ToolDefinition/ToolResource. Because the title omits these key API and schema changes, it is misleading for reviewers and unhelpful in project history. Rename the PR to a concise descriptive title summarizing the primary change, for example: "feat(openapi): add Assistant endpoints, MCP discovery, and refactor ToolDefinition/ToolResource". Update the PR description to enumerate the main API endpoints and schema additions and reference the affected file path (src/libs/AI21/openapi.yaml). Optionally align the branch or commit message to the new title for consistency.
✅ 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_202509201828

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 18:28
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Add Assistant/MCP discovery, run types, vector store fetch, tool defs Sep 20, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 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 22a4121.

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

1018-1043: New vector store endpoint looks good.

The addition of the GET vector store endpoint follows standard REST conventions with proper path parameter definition and error handling.


1520-1541: New Assistant creation endpoint properly structured.

The POST endpoint follows REST conventions with proper request body schema reference and error handling. The request/response schema references are appropriately defined.


1589-1617: Assistant modification endpoint follows standard PATCH patterns.

The PATCH endpoint correctly uses the ModifyAssistantRequest schema and follows REST conventions for updating resources.


1618-1647: Assistant run endpoint properly implemented.

The POST endpoint for running an assistant follows appropriate REST patterns with proper schema references and returns the expected MaestroRunResult.


1947-1969: MCP discovery endpoint follows good API design.

The POST endpoint for MCP tool discovery follows standard patterns with appropriate request and response schemas.


2135-2166: New Assistant fields expand functionality appropriately.

The added fields (requirements, budget, visibility, assistant_type, response_language) provide comprehensive configuration options with sensible defaults and proper enum constraints.


2241-2247: New Assistant type enum is well-defined.

The AssistantType enum provides clear categorization with appropriate values (default, chat, maestro).


2304-2307: Vector store ID field properly integrated.

The addition of vector_store_id field to the upload compliance body follows consistent patterns and includes appropriate description.


2343-2349: Budget level enum appropriately defined.

The BudgetLevel enum provides clear low/medium/high options for resource allocation.


2723-2755: ConversationalRagConfig updates improve flexibility.

The changes to retrieval_strategy using allOf pattern, addition of max_documents field, and response_language enum updates enhance the configuration options appropriately.


2829-2873: CreateAssistantRequest schema properly structured.

The new schema includes all necessary fields with appropriate types, references, and defaults. The structure aligns with the Assistant schema design.


2898-2908: Maestro payload updated with new ToolDefinition references.

The tools field correctly references the execution engine variant of ToolDefinition, maintaining consistency within the maestro context.


2954-2956: Response language enum updated consistently.

The addition of 'unset' option to response_language enum provides a clear default state and is applied consistently across multiple schemas.


3306-3362: FileSearchToolResource schema comprehensively defined.

The new schema provides extensive configuration options for file search functionality with appropriate field types, defaults, and enum values.


3401-3495: HTTP Tool schemas well-structured for extensibility.

The HTTPToolEndpoint, HTTPToolFunction, HTTPToolFunctionParameters, and HTTPToolResource schemas provide a comprehensive framework for HTTP tool integration with proper validation and structure.


3673-3744: MCP schemas enable multi-connector protocol support.

The MCPDefinition, MCPDiscoveryResponse, MCPTool, and MCPToolResource schemas provide appropriate structure for MCP integration with necessary fields and proper typing.


3752-3790: MaestroRunError integration improves error handling.

The addition of MaestroRunError schema and its integration into MaestroRunResult provides better error reporting capabilities.


3906-3960: ModifyAssistantRequest schema enables comprehensive updates.

The schema includes all updatable Assistant fields with proper typing and references, enabling flexible assistant modification.


4117-4166: RunAssistantRequest schema properly configured.

The schema provides comprehensive options for assistant execution with sensible defaults and appropriate field validation.


4167-4172: RunOptimization enum provides clear choices.

The cost/latency optimization options give users clear control over execution priorities.


4347-4354: ToolResource schema updated with new tool types.

The schema now references the comprehensive FileSearchToolResource and WebSearchToolResource schemas, providing better structure than generic objects.


4471-4476: Visibility enum supports access control.

The public/private visibility options provide appropriate access control for assistant management.


4477-4495: WebSearchToolResource schema enables web search configuration.

The schema provides appropriate fields for web search functionality with type constraints and defaults.


4637-4697: Requirement schemas provide structured requirement handling.

The separate requirement schemas for assistant and execution engine contexts allow for appropriate specialization while maintaining clarity.


4654-4697: Unified ToolDefinition schema supports multiple tool types.

The discriminated union approach using oneOf with discriminator properly handles the different tool resource types (HTTP, MCP, FileSearch, WebSearch) with appropriate mapping.


2132-2132: Resolved — schema references are consistent

Both variants exist and are used intentionally: language_studio_api_server__data_types__chat__ToolDefinition (defined at src/libs/AI21/openapi.yaml:4654; referenced at 2472) and language_studio_api_server__data_types__execution_engine__ToolDefinition (defined at 4684; referenced at 2132, 2856, 2898, 3934). No change required.


2472-2472: ToolDefinition variants are intentionally distinct — no action required.
ChatRequest references language_studio_api_server__data_types__chat__ToolDefinition (openapi.yaml:2472; schema at 4654); assistant/maestro/create-assistant payloads reference language_studio_api_server__data_types__execution_engine__ToolDefinition (refs at 2132/2856/3934; schema at 4684). Generated C# models/JsonConverters include both types.

$ref: '#/components/schemas/language_studio_api_server__data_types__execution_engine__ToolDefinition'
tool_resources:
$ref: '#/components/schemas/ToolResources'
$ref: '#/components/schemas/ToolResource'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

ToolResource reference should be verified for consistency.

The tool_resources field references ToolResource which should be consistent with the schema definitions.

Let me verify the ToolResource schema consistency:


🏁 Script executed:

#!/bin/bash
# Description: Check ToolResource schema definition and usage

echo "=== ToolResource schema definition ==="
rg -n -A 10 -B 2 "ToolResource:"

echo -e "\n=== ToolResource references ==="
rg -n "\$ref.*ToolResource"

echo -e "\n=== Related tool resource schemas ==="
rg -n -A 5 "(FileSearchToolResource|WebSearchToolResource|HTTPToolResource|MCPToolResource):"

Length of output: 5782


Add missing http and mcp references to ToolResource schema
ToolResource under components.schemas currently only defines file_search and web_search; you must add http and mcp properties referencing HTTPToolResource and MCPToolResource to stay consistent with the individual tool schemas.

🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around line 2900, the
components.schemas.ToolResource only lists file_search and web_search; add two
new properties to that schema named http and mcp that $ref the existing
HTTPToolResource and MCPToolResource schemas respectively. Ensure both
properties are included at the same indentation/level as file_search and
web_search, and update any required lists if ToolResource must require these new
properties.

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