Skip to content

Conversation

HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Sep 21, 2025

Summary by CodeRabbit

  • New Features
    • New API endpoints to create, modify, and run Assistants.
    • Added endpoint to retrieve a vector store by ID.
    • Introduced MCP tool discovery endpoint.
    • Expanded Assistant configuration: budget levels, visibility, type, requirements, and response language.
    • Added richer tool/resource support, including web, file, and HTTP-based tools.
    • Improved run results with explicit error reporting.
    • Added options for run optimization and structured/verbose responses.

Copy link

coderabbitai bot commented Sep 21, 2025

Walkthrough

Added new Assistant and MCP endpoints, expanded run operations, and introduced/refactored numerous schemas in a single OpenAPI file. Tool definitions were unified under execution_engine types, resources expanded (HTTP/Web/File/MCP), and error/status models updated. Assistant schema gained new properties and defaults. A demo vector-store GET endpoint was added.

Changes

Cohort / File(s) Summary
Endpoints: Assistants, Runs, MCP, Demos
src/libs/AI21/openapi.yaml
Added: POST /studio/v1/assistants (create), PATCH /studio/v1/assistants/{assistant_id} (modify), POST /studio/v1/assistants/{assistant_id}/run (run), POST /studio/v1/mcp/discover (MCP discovery), GET /studio/v1/demos/regulations/vector-store/{vector_store_id} (fetch vector store).
Schemas: Assistant model updates
src/libs/AI21/openapi.yaml
Updated Assistant schema: replaced inline tools with language_studio_api_server__data_types__execution_engine__ToolDefinition; added requirements, budget (BudgetLevel), visibility (Visibility), assistant_type (AssistantType), response_language; defaults wired.
Schemas: Requests/Responses for new flows
src/libs/AI21/openapi.yaml
Added CreateAssistantRequest, ModifyAssistantRequest, RunAssistantRequest; DetectSchemaRequest/Response; updated MaestroRunResult to include error; added MaestroRunError.
Schemas: Tooling refactor and resources
src/libs/AI21/openapi.yaml
Replaced prior tool refs with execution_engine ToolDefinition; introduced ToolResource abstraction and concrete resources: HTTPToolResource (+ HTTPToolEndpoint/Function/Parameters), WebSearchToolResource, FileSearchToolResource; MCPDefinition, MCPTool, MCPToolResource, MCPDiscoveryResponse.
Schemas: Enums and operational tuning
src/libs/AI21/openapi.yaml
Added enums: AssistantType, BudgetLevel, Visibility, RunOptimization; response_language fields; structured_rag_enabled, dynamic_planning_enabled, include/verbose flags in run requests.
Errors/Validation
src/libs/AI21/openapi.yaml
Added HTTPValidationError; clarified tool invocation error separation; updated responses (200/422) across new endpoints.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Client
  participant API as Studio API
  participant Assist as Assistant Service
  participant Runner as Maestro Runner
  participant Tools as Tooling/Resources

  rect rgb(240,248,255)
    note over Client,API: Create/Modify Assistant
    Client->>API: POST /assistants (CreateAssistantRequest)
    API->>Assist: Validate + persist Assistant (tools/resources)
    Assist-->>API: Assistant
    API-->>Client: 200 Assistant
    Client->>API: PATCH /assistants/{id} (ModifyAssistantRequest)
    API->>Assist: Apply updates
    Assist-->>API: Assistant
    API-->>Client: 200 Assistant
  end

  rect rgb(245,255,240)
    note over Client,Runner: Run Assistant
    Client->>API: POST /assistants/{id}/run (RunAssistantRequest)
    API->>Runner: Start run
    Runner->>Tools: Resolve ToolDefinitions/ToolResources
    alt Success
      Tools-->>Runner: Results
      Runner-->>API: MaestroRunResult (output)
      API-->>Client: 200 MaestroRunResult
    else Error
      Runner-->>API: MaestroRunResult { error: MaestroRunError }
      API-->>Client: 200 MaestroRunResult (with error) or 422
    end
  end
Loading
sequenceDiagram
  autonumber
  participant Client
  participant API as Studio API
  participant MCP as MCP Discovery

  rect rgb(255,248,240)
    note over Client,MCP: MCP Tool Discovery
    Client->>API: POST /mcp/discover (MCPDefinition)
    API->>MCP: Discover tools/resources
    MCP-->>API: MCPDiscoveryResponse (MCPTool, MCPToolResource)
    API-->>Client: 200 MCPDiscoveryResponse or 422
  end
Loading
sequenceDiagram
  autonumber
  participant Client
  participant API as Studio API
  participant Demo as Demo Store

  note over Client,Demo: Vector Store Retrieval
  Client->>API: GET /demos/regulations/vector-store/{vector_store_id}
  API->>Demo: Fetch by ID
  Demo-->>API: Vector Store
  API-->>Client: 200 Vector Store or 422
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

I thump my paw—new routes appear,
Assistants run, their paths made clear.
Tools align in tidy rows,
MCP whispers what it knows.
Budgets, types, and visibilities—neat!
I nibble docs; the schemas tweet.
Hop! Another spec complete. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The title "feat:@coderabbitai" is non-descriptive and does not summarize the substantial OpenAPI changes in this PR (new assistant create/modify/run endpoints, MCP discovery endpoint, many new schemas and tool resource refactors), so it does not give reviewers a clear sense of the primary change. Because it fails to convey the main intent of the changeset, the title is inconclusive for history and review purposes. Please replace the title with a concise, specific sentence that highlights the main change, for example: "openapi: add Assistant create/modify/run endpoints, MCP discovery, and ToolResource refactor" or "feat(api): add assistants endpoints and MCP discovery; replace ToolDefinition with ToolResource". Start with a scope (e.g., "openapi" or "api") and name the primary feature to help reviewers quickly understand the PR.
✅ 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_202509211829

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 21, 2025 18:30
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Add Assistant & MCP endpoints, expand runs, unify tools, update models Sep 21, 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: 0

🧹 Nitpick comments (1)
src/libs/AI21/openapi.yaml (1)

2304-2307: Minor: Vector store ID parameter may be missing validation.

The vector_store_id parameter lacks format validation (e.g., UUID format). Consider adding format constraints for consistency with other ID parameters in the API.

         vector_store_id:
           title: Vector Store Id
           type: string
+          format: uuid
           description: Vector store ID to use for RFI processing
📜 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 d787217.

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

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

The new GET endpoint for retrieving vector stores by ID follows established OpenAPI patterns in this specification, with proper parameter validation and error handling.


1520-1541: LGTM! Assistant creation endpoint properly defined.

The POST endpoint for creating assistants is well-structured with appropriate request/response schemas and error handling.


1589-1617: LGTM! Assistant modification endpoint follows REST conventions.

The PATCH endpoint for modifying assistants correctly uses the PATCH method and references the appropriate schema for partial updates.


1618-1647: LGTM! Assistant run endpoint is properly implemented.

The POST endpoint for running assistants is well-defined with appropriate request/response schemas and follows the established API patterns.


1947-1969: LGTM! MCP discovery endpoint is well-defined.

The MCP tool discovery endpoint follows consistent patterns with proper request/response schemas and error handling.


2135-2166: LGTM! New assistant properties provide good configurability.

The addition of requirements, budget, visibility, assistant_type, and response_language properties with appropriate defaults enhances the assistant configuration capabilities.


2241-2247: LGTM! AssistantType enum provides clear categorization.

The enum values default, chat, and maestro provide clear categorization for different assistant types.


2343-2349: LGTM! BudgetLevel enum provides clear resource allocation options.

The enum values provide clear low, medium, high budget levels for resource allocation.


2723-2755: LGTM! Conversational RAG configuration enhancements.

The addition of retrieval_strategy, max_documents, and updated response_language enum (including unset) improves the flexibility of conversational RAG configurations.


2829-2872: LGTM! CreateAssistantRequest schema is well-structured.

The schema provides comprehensive assistant creation capabilities with appropriate defaults and validation.


2954-2956: LGTM! Response language enum consistency maintained.

The addition of unset to the response language enum provides a clear default option and maintains consistency across schemas.


3306-3362: LGTM! FileSearchToolResource provides comprehensive search configuration.

The schema includes all necessary properties for file search configuration including retrieval strategy, labels, similarity thresholds, and language settings.


3401-3486: LGTM! HTTP tool schemas are well-defined.

The HTTP tool endpoint, function, and resource schemas provide comprehensive configuration for HTTP-based tools with proper parameter validation.


3487-3495: LGTM! HTTPValidationError follows established patterns.

The validation error schema is consistent with other error schemas in the API.


3673-3744: LGTM! MCP schemas provide complete tool discovery capabilities.

The MCP definition, discovery response, tool, and tool resource schemas provide comprehensive support for Model Context Protocol integration.


3752-3790: LGTM! MaestroRunError enhances error handling.

The addition of error handling to MaestroRunResult with the new MaestroRunError schema improves error reporting capabilities.


3906-3959: LGTM! ModifyAssistantRequest allows comprehensive updates.

The schema supports partial updates to all relevant assistant properties while maintaining proper validation and defaults.


4117-4166: LGTM! RunAssistantRequest provides comprehensive execution control.

The schema includes all necessary parameters for assistant execution including verbose mode, structured RAG, dynamic planning, and response language configuration.


4167-4172: LGTM! RunOptimization enum provides clear performance options.

The cost vs latency optimization options provide clear trade-off choices for assistant execution.


4471-4495: LGTM! Visibility and WebSearchToolResource schemas are well-defined.

Both the Visibility enum and WebSearchToolResource schema provide appropriate configuration options with sensible defaults.


4637-4697: LGTM! Namespaced schemas provide clear separation of concerns.

The long namespaced schema names clearly separate different data types and their usage contexts (assistant vs execution engine vs chat).


2898-2908: Execution engine schema references are consistent — no action required.
All references and component definitions match in src/libs/AI21/openapi.yaml — ToolDefinition refs at lines 2132, 2856, 2898, 3934; Requirement ref at 2908; component definitions at 4684 (ToolDefinition) and 4668 (Requirement).


2472-2472: Confirm chat ToolDefinition intentionally differs from execution_engine ToolDefinition

Chat ToolDefinition (src/libs/AI21/openapi.yaml:4654) is an object requiring type='function' and function → FunctionToolDefinition. Execution_engine ToolDefinition (src/libs/AI21/openapi.yaml:4684) is a polymorphic oneOf (HTTP/MCP/FileSearch/WebSearch) with a 'type' discriminator. Confirm whether chat is intentionally restricted to function-only tools; if not, align chat to reuse the execution_engine oneOf/discriminator or introduce a shared ToolDefinition.


4347-4354: Clarify ToolResource schema (nested properties vs union/discriminator)

ToolResource currently exposes file_search and web_search as nested properties referencing FileSearchToolResource / WebSearchToolResource, while those schemas define a type enum — confirm whether this nesting is intentional or if ToolResource should instead be a union (oneOf/anyOf) with a discriminator to avoid inconsistent object shapes.
Location: src/libs/AI21/openapi.yaml (≈ lines 4347–4354).


2132-2132: Tool definition schema references are consistent.

All $ref usages point to the two intended namespaced schemas (language_studio_api_server__data_types__chat__ToolDefinition and language_studio_api_server__data_types__execution_engine__ToolDefinition), matching their component definitions.

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