Skip to content

Conversation

HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Sep 19, 2025

Summary by CodeRabbit

  • New Features

    • Create, update, and run assistants via new endpoints.
    • Manage assistant plans and routes, including validation.
    • Discover tools via MCP discovery.
    • Retrieve vector-store details.
    • Support new tool types, including web and file search.
    • Choose run optimizations (cost or latency).
  • Enhancements

    • Payloads accept vector_store_id for uploads and RFI processing.
    • Assistants now support budget levels, visibility settings, and response language.
    • Improved error responses in run results.
  • API Changes

    • Updated tool configuration schema; existing integrations may need adjustments.

Copy link

coderabbitai bot commented Sep 19, 2025

Walkthrough

Expanded OpenAPI spec in src/libs/AI21/openapi.yaml to add assistant lifecycle endpoints, plan/route management, assistant run/validation, MCP discovery, and a vector-store retrieval endpoint. Introduced new schemas, enums, and tool definitions with a discriminator-based ToolDefinition, and updated multiple request bodies to include vector_store_id and budget/visibility fields.

Changes

Cohort / File(s) Summary of changes
Vector Store Retrieval
src/libs/AI21/openapi.yaml
Added GET /studio/v1/demos/regulations/vector-store/{vector_store_id} with 200/422 responses.
MCP Discovery
src/libs/AI21/openapi.yaml
Added POST /studio/v1/mcp/discover with MCPDefinition → MCPDiscoveryResponse; introduced MCPDefinition, MCPDiscoveryResponse, MCPTool, MCPToolResource.
Assistant Lifecycle
src/libs/AI21/openapi.yaml
Added POST /studio/v1/assistants (CreateAssistantRequest → Assistant) and PATCH /studio/v1/assistants/{assistant_id} (ModifyAssistantRequest → Assistant).
Assistant Run & Validation
src/libs/AI21/openapi.yaml
Added POST /studio/v1/assistants/{assistant_id}/run (RunAssistantRequest → MaestroRunResult) and POST /studio/v1/assistants/{assistant_id}/validate_plan (CreatePlanPayload → ValidationResult). Introduced RunAssistantRequest, RunOptimization, MaestroPayloadType, MaestroRunError; MaestroRunResult updated with error.
Plans Management
src/libs/AI21/openapi.yaml
Added GET/POST /studio/v1/assistants/{assistant_id}/plans and GET/PATCH /studio/v1/assistants/{assistant_id}/plans/{plan_id}` for listing, creating, fetching, and modifying plans.
Routes Management
src/libs/AI21/openapi.yaml
Added GET/POST /studio/v1/assistants/{assistant_id}/routes and GET/PATCH/DELETE /studio/v1/assistants/{assistant_id}/routes/{route_id}` for route CRUD.
Tooling Model Refactor
src/libs/AI21/openapi.yaml
Replaced AssistantTool with language_studio_api_server__data_types__execution_engine__ToolDefinition (oneOf HTTPToolResource, MCPToolResource, FileSearchToolResource, WebSearchToolResource) using discriminator; added ToolResource, FileSearchToolResource, WebSearchToolResource.
Assistant Schema Extensions
src/libs/AI21/openapi.yaml
Assistant now includes tools (ToolDefinition), requirements, budget, visibility, assistant_type, response_language; added enums AssistantType, BudgetLevel, Visibility; added requirement types.
Request Payload Enhancements
src/libs/AI21/openapi.yaml
Added vector_store_id to Body_upload_check_compliance, Body_v1_library_upload, Body_process_rfi_document; Body_v1_library_upload also includes BudgetLevel.
HTTP Tool Definitions
src/libs/AI21/openapi.yaml
Added HTTPToolEndpoint, HTTPToolFunction, HTTPToolResource, HTTPToolFunctionParameters; updated error/validation references accordingly.
OperationId Updates
src/libs/AI21/openapi.yaml
Added/updated operationIds: v1_create_assistant, v1_modify_assistant, v1_run_assistant, v1_list_plans, v1_create_plan, v1_get_plan, v1_modify_plan, v1_list_routes, v1_create_route, v1_get_route, v1_modify_route, v1_delete_route, v1_validate_plan, vector store and MCP discovery IDs.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant C as Client
  participant S as Studio API
  participant A as Assistant Service
  participant P as Plan Service
  participant R as Route Service
  Note over C,S: Assistant lifecycle (create/modify)
  C->>S: POST /assistants (CreateAssistantRequest)
  S->>A: CreateAssistant
  A-->>S: Assistant
  S-->>C: 200 Assistant
  C->>S: PATCH /assistants/{assistant_id}
  S->>A: ModifyAssistant
  A-->>S: Assistant
  S-->>C: 200 Assistant

  rect rgba(230,245,255,0.5)
  Note over C,S: Plans and Routes management
  C->>S: GET/POST /assistants/{id}/plans
  S->>P: List/Create Plan
  P-->>S: ListPlansResponse/Plan
  S-->>C: 200
  C->>S: GET/PATCH /assistants/{id}/plans/{plan_id}
  S->>P: Get/Modify Plan
  P-->>S: Plan
  S-->>C: 200
  C->>S: GET/POST /assistants/{id}/routes
  S->>R: List/Create Route
  R-->>S: ListRoutesResponse/AssistantRoute
  S-->>C: 200
  C->>S: GET/PATCH/DELETE /assistants/{id}/routes/{route_id}
  S->>R: Get/Modify/Delete Route
  R-->>S: AssistantRoute/OK
  S-->>C: 200
  end

  rect rgba(240,255,240,0.5)
  Note over C,S: Run & Validate
  C->>S: POST /assistants/{id}/validate_plan
  S->>P: Validate Plan
  P-->>S: ValidationResult
  S-->>C: 200
  C->>S: POST /assistants/{id}/run (RunAssistantRequest)
  S->>A: Execute Run (tools, optimization)
  alt success
    A-->>S: MaestroRunResult
    S-->>C: 200 MaestroRunResult
  else error
    A-->>S: MaestroRunResult{error}
    S-->>C: 200 MaestroRunResult{error}
  end
  end
Loading
sequenceDiagram
  autonumber
  participant C as Client
  participant S as Studio API
  participant D as MCP Discovery
  Note over C,S: MCP Tool discovery
  C->>S: POST /mcp/discover (MCPDefinition)
  S->>D: Discover(MCPDefinition)
  D-->>S: MCPDiscoveryResponse (tools)
  S-->>C: 200 MCPDiscoveryResponse
Loading
sequenceDiagram
  autonumber
  participant C as Client
  participant S as Studio API
  participant V as Vector Store
  Note over C,S: Vector-store retrieval
  C->>S: GET /demos/regulations/vector-store/{vector_store_id}
  S->>V: Fetch(vector_store_id)
  V-->>S: Object
  S-->>C: 200 Object
  opt invalid id
    S-->>C: 422 Validation Error
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

I thump my paws: new routes appear,
Assistants plan, then run without fear.
MCP whispers tools to find,
Vectors fetched, neatly aligned.
Budgets, types, and visibilities gleam—
In YAML burrows, I craft the dream. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title "feat:@coderabbitai" is not descriptive or related to the actual changes in this PR; it gives no information about the large API additions and schema refactors (studio assistants endpoints, plans/routes management, run endpoint, MCP discovery, tool-definition changes, and vector-store additions), so it would not help a reviewer or someone scanning history understand the primary change. Please replace the title with a concise, single-sentence summary of the primary change; for example: "feat(studio): add assistants API (create/modify/run), plans & routes, MCP discovery, and tool-definition refactor" or "feat: add studio assistants and related tooling (plans, routes, MCP discovery, vector-store)". Update the PR title to clearly reflect the main purpose before merging.
✅ 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_202509191831

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot enabled auto-merge September 19, 2025 18:32
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Expand OpenAPI: assistant lifecycle, planning/routes, MCP, vector store Sep 19, 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: 3

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)

3528-3529: Fix broken $ref to misspelled schema.
Update items.$ref to the corrected schema name.

-            $ref: '#/components/schemas/IgnestionBatchStatusCount'
+            $ref: '#/components/schemas/IngestionBatchStatusCount'
🧹 Nitpick comments (6)
src/libs/AI21/openapi.yaml (6)

1018-1043: New vector-store GET endpoint looks good; tiny title nit.
The path/params/responses are consistent. Title at Line 1036 has double spaces; optional tidy.


2132-2166: Assistant schema: align tool_resources and optimization with new types.

  • Prefer ToolResource over legacy AssistantToolResource for consistency with CreateMaestroRunsPayload.
  • Consider making optimization an enum (RunOptimization) vs plain string for stronger typing.

Apply:

         tools:
           title: Tools
           type: array
           items:
             $ref: '#/components/schemas/language_studio_api_server__data_types__execution_engine__ToolDefinition'
-        tool_resources:
-          $ref: '#/components/schemas/AssistantToolResource'
+        tool_resources:
+          $ref: '#/components/schemas/ToolResource'
-        optimization:
-          title: Optimization
-          type: string
+        optimization:
+          $ref: '#/components/schemas/RunOptimization'

3402-3485: HTTP tool definitions: minor schema‑of‑schema caveat.
HTTPToolFunctionParameters models JSON Schema; naming a property “additionalProperties” may confuse consumers vs the JSON Schema keyword. Consider renaming the field (e.g., allow_additional_properties) or documenting intent.


3674-3688: MCPDefinition: add URI format for server_url.
Improves validation and docs.

   MCPDefinition:
     properties:
       server_url:
         title: Server Url
-        type: string
+        type: string
+        format: uri

3907-3960: ModifyAssistantRequest: align tool_resources to ToolResource.
Currently references AssistantToolResource while other payloads use ToolResource.

-    tool_resources:
-      $ref: '#/components/schemas/AssistantToolResource'
+    tool_resources:
+      $ref: '#/components/schemas/ToolResource'

4478-4495: WebSearchToolResource: OK.
Fields aligned; consider adding allowed_domains in future.

📜 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 1ec624b.

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

1521-1541: Create Assistant endpoint: OK.
OperationId, request/response wiring are consistent.


1590-1617: Modify Assistant endpoint: OK.
Parameters, body, and response types are coherent.


1619-1647: Run Assistant endpoint: OK.
Operation wiring to MaestroRunResult is correct.


1947-1969: MCP discovery endpoint: OK.
Matches new MCP schemas.


2242-2247: AssistantType enum added: OK.
Values look reasonable.


2305-2307: Add vector_store_id to compliance upload: OK.
Field is well-described.


2344-2349: BudgetLevel enum: OK.
Lowercase values with sensible defaults elsewhere.


2723-2756: ConversationalRagConfig tweaks: OK.
Retrieval strategy default, max_documents, and response_language=unset look good.


2898-2957: CreateMaestroRunsPayload tool/response_language updates: OK.
Uses ToolDefinition union and DRY response_language.


3307-3362: FileSearchToolResource: OK.
Fields and enums align with retrieval configs.


3487-3495: HTTPValidationError retained: OK.
Still referenced by 422 responses consistently.


3719-3745: MCPToolResource: OK.
Discriminator type and fields look consistent.


3753-3791: MaestroRunError and error on result: OK.
Clear error surface without breaking existing fields.


4118-4166: RunAssistantRequest: OK.
Defaults and include list look fine.


4168-4172: RunOptimization enum: OK.
Enum matches intended values.


4348-4355: ToolResource: OK.
Matches new File/Web search tool resources.


4472-4476: Visibility enum: OK.
Used on Assistant and recommended for CreateAssistantRequest.


4638-4698: New Requirement/ToolDefinition unions: OK.
Discriminator mappings and type enums are correct.


2830-2873: Consistency sweep (tools/resources/visibility) — use ToolResource & add visibility on create

  • Replace inline tool_resources (type: object) with the ToolResource schema reference for Assistant, CreateAssistantRequest, and ModifyAssistantRequest (src/libs/AI21/openapi.yaml — CreateAssistantRequest ≈2829; ModifyAssistantRequest ≈3906; Assistant ≈2132–2166).
  • Expose a visibility field on CreateAssistantRequest with the same type/enum as ModifyAssistantRequest to avoid asymmetric create/patch behavior.

Comment on lines +2830 to 2873
title: CreateAssistantRequest
required:
- name
type: object
properties:
name:
title: Name
type: string
description:
title: Description
type: string
optimization:
title: Optimization
type: string
avatar:
title: Avatar
type: string
models:
title: Models
type: array
items:
type: string
tools:
title: Tools
type: array
items:
$ref: '#/components/schemas/language_studio_api_server__data_types__execution_engine__ToolDefinition'
tool_resources:
title: Tool Resources
type: object
requirements:
title: Requirements
type: array
items:
$ref: '#/components/schemas/language_studio_api_server__data_types__assistant__Requirement'
budget:
allOf:
- $ref: '#/components/schemas/BudgetLevel'
default: medium
assistant_type:
allOf:
- $ref: '#/components/schemas/AssistantType'
default: default
CreateMaestroRunsPayload:
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

CreateAssistantRequest: make optimization enum, and reuse ToolResource.

  • optimization is string here but RunOptimization elsewhere (ModifyAssistantRequest). Unify.
  • tool_resources is plain object; align to ToolResource.
  • Optional: allow visibility at creation (exists on ModifyAssistantRequest).
   CreateAssistantRequest:
     title: CreateAssistantRequest
     required:
       - name
     type: object
     properties:
       ...
-      optimization:
-        title: Optimization
-        type: string
+      optimization:
+        $ref: '#/components/schemas/RunOptimization'
       ...
-      tool_resources:
-        title: Tool Resources
-        type: object
+      tool_resources:
+        $ref: '#/components/schemas/ToolResource'
+      visibility:
+        $ref: '#/components/schemas/Visibility'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
title: CreateAssistantRequest
required:
- name
type: object
properties:
name:
title: Name
type: string
description:
title: Description
type: string
optimization:
title: Optimization
type: string
avatar:
title: Avatar
type: string
models:
title: Models
type: array
items:
type: string
tools:
title: Tools
type: array
items:
$ref: '#/components/schemas/language_studio_api_server__data_types__execution_engine__ToolDefinition'
tool_resources:
title: Tool Resources
type: object
requirements:
title: Requirements
type: array
items:
$ref: '#/components/schemas/language_studio_api_server__data_types__assistant__Requirement'
budget:
allOf:
- $ref: '#/components/schemas/BudgetLevel'
default: medium
assistant_type:
allOf:
- $ref: '#/components/schemas/AssistantType'
default: default
CreateMaestroRunsPayload:
title: CreateAssistantRequest
required:
- name
type: object
properties:
name:
title: Name
type: string
description:
title: Description
type: string
optimization:
$ref: '#/components/schemas/RunOptimization'
avatar:
title: Avatar
type: string
models:
title: Models
type: array
items:
type: string
tools:
title: Tools
type: array
items:
$ref: '#/components/schemas/language_studio_api_server__data_types__execution_engine__ToolDefinition'
tool_resources:
$ref: '#/components/schemas/ToolResource'
visibility:
$ref: '#/components/schemas/Visibility'
requirements:
title: Requirements
type: array
items:
$ref: '#/components/schemas/language_studio_api_server__data_types__assistant__Requirement'
budget:
allOf:
- $ref: '#/components/schemas/BudgetLevel'
default: medium
assistant_type:
allOf:
- $ref: '#/components/schemas/AssistantType'
default: default
CreateMaestroRunsPayload:
🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 2830 to 2873, the
CreateAssistantRequest schema uses a plain string for optimization and a generic
object for tool_resources and is missing visibility; change optimization to
reuse the existing RunOptimization enum (replace type:string with an allOf/$ref
to the RunOptimization schema or direct $ref), change tool_resources to
reference the existing ToolResource schema instead of type: object, and add an
optional visibility property matching the ModifyAssistantRequest (same
type/default) so creation and modification schemas are consistent.

Comment on lines +3496 to 3500
title: IgnestionBatchStatusCount
required:
- status
- count
type: object
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

Repo-wide verification for the ingestion typo.
Ensure no lingering “Ignestion”.

Also applies to: 3528-3529


🏁 Script executed:

#!/bin/bash
rg -n 'Ignestion'

Length of output: 3442


Rename schema and generated types: replace "Ignestion" → "Ingestion"

Rename the schema key/title in src/libs/AI21/openapi.yaml and re-run the code generator so generated code no longer contains the typo.

Locations:

  • src/libs/AI21/openapi.yaml:3495-3496 (IgnestionBatchStatusCount), 3528 ($ref).
  • src/libs/AI21/Generated/AI21.Models.IgnestionBatchStatusCount.Json.g.cs: lines 5,37,43,54,58,66,72,73,83,87.
  • src/libs/AI21/Generated/AI21.Models.IgnestionBatchStatusCount.g.cs: lines 9,32,39,48,50.
  • src/libs/AI21/Generated/AI21.Models.IngestionBatchStatusResponse.g.cs: lines 30,56 (references IgnestionBatchStatusCount).
  • src/libs/AI21/Generated/AI21.JsonSerializerContextTypes.g.cs: lines 665,673 (Type159/Type161).

Fix openapi.yaml (schema name/title and $ref) and then regenerate the files under src/libs/AI21/Generated/. If you cannot run the generator, update generated types and all references consistently.

🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 3495-3500, rename the schema
key/title "IgnestionBatchStatusCount" to "IngestionBatchStatusCount" and update
the corresponding $ref at ~line 3528 to point to the new name; then re-run the
OpenAPI code generator to regenerate everything under src/libs/AI21/Generated/.
If you cannot run the generator, manually update all generated artifacts to
match the new name: rename files and types from IgnestionBatchStatusCount →
IngestionBatchStatusCount, update all references in the listed generated files
(AI21.Models.IgnestionBatchStatusCount.Json.g.cs,
AI21.Models.IgnestionBatchStatusCount.g.cs,
AI21.Models.IngestionBatchStatusResponse.g.cs,
AI21.JsonSerializerContextTypes.g.cs) and ensure JSON serializer context Type
entries and any $ref strings are consistently renamed.

⚠️ Potential issue

Typo: IgnestionBatchStatusCount → IngestionBatchStatusCount (breaks $refs).
This typo will break schema references.

Apply:

-    IgnestionBatchStatusCount:
+    IngestionBatchStatusCount:
       title: IgnestionBatchStatusCount
       required:
         - status
         - count

And update all $refs accordingly (see Line 3528).

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
title: IgnestionBatchStatusCount
required:
- status
- count
type: object
IngestionBatchStatusCount:
title: IgnestionBatchStatusCount
required:
- status
- count
type: object
🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 3496 to 3500, the schema name has a
typo "IgnestionBatchStatusCount" which should be "IngestionBatchStatusCount";
rename the schema key to the correct spelling and then update all $ref
occurrences that point to the misspelled name (including the one at/near line
3528) to use "#/components/schemas/IngestionBatchStatusCount" so references
resolve correctly.

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