feat:Update AI21 OpenAPI: new endpoints, schemas and response formats#191
feat:Update AI21 OpenAPI: new endpoints, schemas and response formats#191HavenDV wants to merge 1 commit into
Conversation
WalkthroughThe OpenAPI spec in src/libs/AI21/openapi.yaml was updated to add new assistants, routes, plans, MCP discovery, and vector-store endpoints, expand/rename schemas and enums, adjust tool definitions/references, update demos payloads, and enable JSON/PDF responses for generate-response-pdf. All changes are confined to this file. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Client
participant API as Studio API
participant Assist as Assistants Service
participant Exec as Execution Engine
participant Tools as Tool Integrations
participant VS as Vector Store
Note over Client,API: Create/Modify/Run Assistant flow
Client->>API: POST /assistants (or PATCH /assistants/{id})
API->>Assist: Validate & persist Assistant
Assist-->>API: Assistant
API-->>Client: 200 Assistant
Client->>API: POST /assistants/{id}/run (RunAssistantRequest)
API->>Assist: Prepare run (routes/plans)
Assist->>Exec: Execute plan/tools
par Tool calls
Exec->>Tools: HTTP/MCP/FileSearch/WebSearch calls
Tools-->>Exec: Results
and Retrieval
Exec->>VS: Query documents (if vector_store_id)
VS-->>Exec: Documents
end
Exec-->>Assist: Run result
Assist-->>API: MaestroRunResult
API-->>Client: 200 MaestroRunResult
Note over Client,API: Routes/Plans management similar CRUD on /assistants/{id}/routes|/plans
sequenceDiagram
autonumber
actor Client
participant API as Studio API
participant MCP as MCP Discovery
Note over Client,API: MCP tool discovery
Client->>API: POST /mcp/discover
API->>MCP: Discover tools
MCP-->>API: MCPDiscoveryResponse
API-->>Client: 200 MCPDiscoveryResponse
sequenceDiagram
autonumber
actor Client
participant API as Studio API
participant VS as Vector Store
Note over Client,API: Vector store fetch for demos
Client->>API: GET /demos/regulations/vector-store/{vector_store_id}
API->>VS: Fetch by ID
VS-->>API: Vector store object
API-->>Client: 200 Object or 422 on validation
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/libs/AI21/openapi.yaml (1)
2068-2070: Fix duplicate operationId values in src/libs/AI21/openapi.yamlMultiple endpoints share the same operationId (breaks codegen). Make each operationId unique.
- v1_library_management — lines 91, 171, 198, 370, 397 (paths: /studio/v1/library/files [GET], /studio/v1/library/files/{file_id} [GET, PUT], /studio/v1/library/batches/{batch_id}/status [GET], /studio/v1/library/files/{file_id}/download [GET]).
- v1_secret_storage — lines 280, 291, 314, 339 (paths: /studio/v1/secrets [GET, POST, DELETE], /studio/v1/secrets/{secret_id} [PATCH]).
Rename operationIds to unique, descriptive names (or consolidate intentionally identical ops) so codegen produces distinct clients/handlers.
🧹 Nitpick comments (11)
src/libs/AI21/openapi.yaml (11)
1018-1043: Add 404 and (optionally) UUID format for vector_store_id.GET by ID should declare a 404. If IDs are UUIDs, add format hints.
Apply:
parameters: - name: vector_store_id in: path required: true schema: title: Vector Store Id - type: string + type: string + format: uuid responses: '200': description: Successful Response content: application/json: schema: title: Response Get Vector Store Studio V1 Demos Regulations Vector Store Vector Store Id Get type: object + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError'
1520-1541: Support 201 Created + Location for resource creation.Keep 200 for backward compatibility; add 201 with Location.
responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Assistant' + '201': + description: Created + headers: + Location: + description: URL of the created Assistant + schema: { type: string } + content: + application/json: + schema: + $ref: '#/components/schemas/Assistant' '422':
1590-1617: PATCH should include 404 Not Found.Missing 404 complicates client error handling.
responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Assistant' + '404': + description: Assistant not found + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' '422':
1619-1647: Add 404 for Run Assistant.Running a non-existent assistant should be modeled as 404.
responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MaestroRunResult' + '404': + description: Assistant not found + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' '422':
2278-2286: Unify budget typing with BudgetLevel enum.These payloads use uppercase strings (default MEDIUM) while BudgetLevel is lowercased. Use the enum for consistent validation.
budget: - title: Budget - type: string - description: 'Budget level: LOW, MEDIUM, or HIGH' - default: MEDIUM + allOf: + - $ref: '#/components/schemas/BudgetLevel' + description: 'Budget level' + default: medium vector_store_id:
2297-2304: Apply the same budget enum fix here.Align with BudgetLevel and lowercase default.
budget: - title: Budget - type: string - default: MEDIUM + allOf: + - $ref: '#/components/schemas/BudgetLevel' + default: medium vector_store_id:
2826-2870: Normalize CreateAssistantRequest: tools shape, tool_resources ref, and optimization enum.
- tools currently model as array of “object with additionalProperties: AssistantTool”, which is awkward for codegen and inconsistent with typical enum arrays.
- tool_resources should reuse AssistantToolResource (ModifyAssistantRequest already does).
- optimization should use RunOptimization like ModifyAssistantRequest.
properties: name: title: Name type: string @@ - optimization: - title: Optimization - type: string + optimization: + $ref: '#/components/schemas/RunOptimization' @@ - tools: - title: Tools - type: array - items: - type: object - additionalProperties: - $ref: '#/components/schemas/AssistantTool' + tools: + title: Tools + type: array + items: + $ref: '#/components/schemas/AssistantTool' @@ - tool_resources: - title: Tool Resources - type: object + tool_resources: + $ref: '#/components/schemas/AssistantToolResource'Follow-up: consider aligning Assistant.tools similarly for consistency across read/write models.
3400-3484: HTTP tool schema seems underspecified (no HTTP method/body).HTTPToolEndpoint lacks method; HTTPToolFunction doesn’t indicate where params map (query/path/body). Add minimal fields to avoid ambiguous execution.
HTTPToolEndpoint: title: HTTPToolEndpoint required: - url + - method type: object properties: url: title: Url type: string + method: + title: Method + enum: [GET, POST, PUT, PATCH, DELETE] + type: string headers: title: Headers type: object @@ HTTPToolFunction: title: HTTPToolFunction required: - name - description - parameters type: object properties: @@ parameters: $ref: '#/components/schemas/HTTPToolFunctionParameters' + body_schema: + title: Body Schema + type: object + description: Optional JSON schema for request body
3894-3935: ModifyAssistantRequest tools shape inconsistent with Create fix.If you adopt the CreateAssistantRequest tools change, mirror it here for symmetry.
- tools: - title: Tools - type: array - items: - type: object - additionalProperties: - $ref: '#/components/schemas/AssistantTool' + tools: + title: Tools + type: array + items: + $ref: '#/components/schemas/AssistantTool'
4323-4330: Consolidate ToolResource vs AssistantToolResource.Having both ToolResource and AssistantToolResource increases divergence risk. Prefer one schema (with plan_approval if needed) used across Assistant, Create/Modify, and Maestro runs.
1045-1061: Model application/pdf as binary.Optional but clearer for generators.
content: application/json: schema: { } - application/pdf: { } + application/pdf: + schema: + type: string + format: binary
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (132)
src/libs/AI21/Generated/AI21..JsonSerializerContext.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.GetVectorStoreStudioV1DemosRegulationsVectorStoreVectorStoreIdGet.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.McpToolDiscoveryStudioV1McpDiscoverPost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.UploadCheckComplianceStudioV1DemosRegulationsUploadCheckCompliancePost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.V1ConversationalRag.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.V1CreateAssistant.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.V1MaestroRun.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.V1ModifyAssistant.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.V1RunAssistant.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.GetVectorStoreStudioV1DemosRegulationsVectorStoreVectorStoreIdGet.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.McpToolDiscoveryStudioV1McpDiscoverPost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.UploadCheckComplianceStudioV1DemosRegulationsUploadCheckCompliancePost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.V1ConversationalRag.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.V1CreateAssistant.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.V1MaestroRun.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.V1ModifyAssistant.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.V1RunAssistant.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IJambaCompleteClient.V1ChatComplete.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JambaCompleteClient.V1ChatComplete.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.AssistantType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.AssistantTypeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.BudgetLevel.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.BudgetLevelNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceLabelsFilterMode.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceLabelsFilterModeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceResponseLanguage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceResponseLanguageNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.FileSearchToolResourceTypeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.HTTPToolFunctionParametersType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.HTTPToolFunctionParametersTypeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.HTTPToolResourceType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.HTTPToolResourceTypeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesChatToolDefinitionType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesChatToolDefinitionTypeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesExecutionEngineToolDefinition.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminatorType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminatorTypeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.MCPToolResourceType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.MCPToolResourceTypeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.RunAssistantRequestResponseLanguage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.RunAssistantRequestResponseLanguageNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.RunOptimization.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.RunOptimizationNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.Visibility.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.VisibilityNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.WebSearchToolResourceType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.WebSearchToolResourceTypeNullable.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonSerializerContextTypes.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.Assistant.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.AssistantTool2.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.AssistantType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.BodyUploadCheckComplianceStudioV1DemosRegulationsUploadCheckCompliancePost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.BudgetLevel.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ConversationalRagConfig.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ConversationalRagConfigResponseLanguage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ConversationalRagConfigRetrievalStrategy.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateAssistantRequest.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateAssistantRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateAssistantRequestTool.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateAssistantRequestTool.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateAssistantRequestToolResources.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateAssistantRequestToolResources.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateMaestroRunsPayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateMaestroRunsPayloadResponseLanguage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.FileSearchToolResource.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.FileSearchToolResource.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.FileSearchToolResourceLabelsFilterMode.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.FileSearchToolResourceResponseLanguage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.FileSearchToolResourceType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.GetVectorStoreStudioV1DemosRegulationsVectorStoreVectorStoreIdGetResponse.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.GetVectorStoreStudioV1DemosRegulationsVectorStoreVectorStoreIdGetResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolEndpoint.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolEndpoint.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolEndpointHeaders.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolEndpointHeaders.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunction.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunction.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParamProperties.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParamProperties.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParameters.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParameters.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParametersProperties.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParametersProperties.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParametersType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolResource.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolResource.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolResourceType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesAssistantRequirement.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesAssistantRequirement.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesChatToolDefinition.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesChatToolDefinition.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesChatToolDefinitionType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineRequirement.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineRequirement.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinition.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinition.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminator.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminator.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineToolDefinitionDiscriminatorType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPDefinition.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPDefinition.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPDefinitionHeaders.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPDefinitionHeaders.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPDiscoveryResponse.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPDiscoveryResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPTool.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPTool.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPToolInputSchema.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPToolInputSchema.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPToolResource.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPToolResource.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPToolResourceHeaders.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPToolResourceHeaders.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPToolResourceType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ModifyAssistantRequest.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ModifyAssistantRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ModifyAssistantRequestTool.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ModifyAssistantRequestTool.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RunAssistantRequest.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RunAssistantRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RunAssistantRequestOutputType.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RunAssistantRequestOutputType.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RunAssistantRequestResponseLanguage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RunOptimization.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolResource.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolResource.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.Visibility.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WebSearchToolResource.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WebSearchToolResource.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WebSearchToolResourceType.g.csis excluded by!**/generated/**
📒 Files selected for processing (1)
src/libs/AI21/openapi.yaml(23 hunks)
🔇 Additional comments (12)
src/libs/AI21/openapi.yaml (12)
2137-2153: Assistant fields additions LGTM.Defaults match enums; no schema conflicts spotted.
2218-2222: Enum extension to include rag looks good.No downstream breakage expected.
2340-2346: BudgetLevel enum LGTM.
2468-2468: Switch to chat ToolDefinition is correct.This matches the discriminator-based function tool shape.
2719-2725: ConversationalRagConfig updates look consistent.RetrievalStrategy via allOf, max_documents, and response_language=unset are coherent.
Please confirm server-side behavior treats 'unset' as “use workspace default”.
Also applies to: 2738-2752
2896-2906: Execution engine tool wiring LGTM.Using execution_engine ToolDefinition and ToolResource is consistent.
3672-3743: MCP discovery models LGTM.Shapes are minimal but sufficient; tool inputSchema is opaque, which is fine.
4093-4142: RunAssistantRequest LGTM.Defaults and includes are sensible; enum values align with other schemas.
4447-4451: Visibility enum LGTM.
4453-4470: WebSearchToolResource LGTM.Consider adding a query cap or per-domain limit later; not blocking.
4613-4672: New language_ Requirement/ToolDefinition models LGTM.*Discriminator mapping and refs resolve cleanly.
1948-1969: MCP discovery endpoint LGTM.Request/response wiring matches new schemas; nothing blocking.
Summary by CodeRabbit
New Features
Refactor