feat:Expand OpenAPI: Assistants CRUD/run, MCP discovery, vector-store fetch#224
feat:Expand OpenAPI: Assistants CRUD/run, MCP discovery, vector-store fetch#224
Conversation
WalkthroughExpanded OpenAPI spec in a single file to add new endpoints (Assistants CRUD/run, MCP tool discovery, vector-store fetch), introduce and refactor public schemas (assistant, tools, MCP, HTTP tool types), augment existing request bodies with vector_store_id and run options, and update enums/configs and references to new language_studio_api_server__data_types__… definitions. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Client
participant API as Studio API
participant Assist as Assistants Service
participant Exec as Execution Engine
rect rgba(220,240,255,0.4)
note over Client,API: Create Assistant
Client->>API: POST /studio/v1/assistants (CreateAssistantRequest)
API->>Assist: createAssistant(request)
Assist-->>API: Assistant
API-->>Client: 200 Assistant
end
rect rgba(235,255,235,0.4)
note over Client,API: Modify Assistant
Client->>API: PATCH /studio/v1/assistants/{id} (ModifyAssistantRequest)
API->>Assist: modifyAssistant(id, patch)
Assist-->>API: Assistant
API-->>Client: 200 Assistant
end
rect rgba(255,245,220,0.5)
note over Client,Exec: Run Assistant
Client->>API: POST /studio/v1/assistants/{id}/run (RunAssistantRequest)
API->>Exec: runAssistant(id, options, input)
alt Success
Exec-->>API: MaestroRunResult(result)
API-->>Client: 200 MaestroRunResult
else Error
Exec-->>API: MaestroRunResult(error: MaestroRunError)
API-->>Client: 200 MaestroRunResult
end
end
sequenceDiagram
autonumber
actor Client
participant API as Studio API
participant MCP as MCP Discovery
rect rgba(240,240,255,0.5)
note over Client,MCP: MCP Tool Discovery
Client->>API: POST /studio/v1/mcp/discover (MCPDefinition)
API->>MCP: discoverTools(definition)
MCP-->>API: MCPDiscoveryResponse (tools, resources)
API-->>Client: 200 MCPDiscoveryResponse
end
sequenceDiagram
autonumber
actor Client
participant API as Studio API
participant Vec as Vector Store Service
note over Client,Vec: Fetch Vector Store by ID
Client->>API: GET /studio/v1/demos/regulations/vector-store/{vector_store_id}
API->>Vec: getVectorStore(id)
Vec-->>API: VectorStore Object
API-->>Client: 200 Object
opt Validation error
API-->>Client: 422 HTTPValidationError
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45–75 minutes 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: 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)
3496-3508: Typo in schema name: Ignestion → Ingestion.Public schema name has a typo and is referenced below. Fix now to avoid client lock-in.
- IgnestionBatchStatusCount: + IngestionBatchStatusCount: title: IgnestionBatchStatusCount @@ - items: - $ref: '#/components/schemas/IgnestionBatchStatusCount' + items: + $ref: '#/components/schemas/IngestionBatchStatusCount'Also update the
title:to “IngestionBatchStatusCount”.Also applies to: 3525-3529
🧹 Nitpick comments (13)
src/libs/AI21/openapi.yaml (13)
1520-1541: Use 201 for creation + align request schema.
- POST should return 201 Created.
- Ensure CreateAssistantRequest uses the same enums/types as Assistant (see optimization/tool_resources below).
responses: - '200': + '201': description: Successful Response
1619-1647: Consider 202 for async run + streaming compatibility.If runs are asynchronous (MaestroRunResult with in_progress), prefer 202 Accepted. If streaming is supported, document SSE response content type.
responses: - '200': + '202': description: Successful Response
1947-1969: Validate MCP inputs and formats.
- Add
format: uritoMCPDefinition.server_url.- Clarify auth requirements and rate limits in endpoint description.
components: schemas: MCPDefinition: properties: server_url: - title: Server Url - type: string + title: Server Url + type: string + format: uri
2132-2167: Tooling/types consistency and safe defaults.
- Good switch to public ToolDefinition union.
Assistant.tool_resourcespoints to AssistantToolResource while other payloads use ToolResource; confirm intentional divergence.- Defaulting
visibility: publicmay leak assistants; considerprivate.-visibility: - allOf: - - $ref: '#/components/schemas/Visibility' - default: public +visibility: + allOf: + - $ref: '#/components/schemas/Visibility' + default: private
2304-2308: Description mentions RFI in Regulations schema.
Body_upload_check_compliance.vector_store_idsays “for RFI processing” but this endpoint is regulations/compliance.- description: Vector store ID to use for RFI processing + description: Vector store ID to use for compliance checks
2723-2756: Add bounds/validation for new retrieval fields.
- Provide min/max for
max_documents(e.g., minimum 1).retrieval_similarity_thresholdelsewhere uses 0–1; mirror here if applicable.max_documents: title: Max Documents - type: integer + type: integer + minimum: 1
3307-3363: Strengthen FileSearchToolResource validation.
file_idslikely UUIDs.retrieval_similarity_thresholdshould be 0.0–1.0 like other places.retrieval_similarity_threshold: title: Retrieval Similarity Threshold - type: number + type: number + minimum: 0.0 + maximum: 1.0 file_ids: title: File Ids type: array items: - type: string + type: string + format: uuid
3402-3486: HTTP tool schema: add URI formats and header typing.
- Add
format: urito endpoint URLs.- Consider
headersasadditionalProperties: { type: string }.HTTPToolEndpoint: properties: url: title: Url - type: string + type: string + format: uri headers: - title: Headers - type: object + title: Headers + type: object + additionalProperties: + type: string
2943-2957: Response language: consider null vs 'unset'.Using 'unset' as a sentinel is workable; alternatively allow omission or
nullable: trueto reduce enum churn.
3753-3791: Include error code/type for machine handling.
MaestroRunErroronly hasmessage. Considercodeanddetailsfor programmatic branching.MaestroRunError: properties: message: title: Message type: string + code: + title: Code + type: string + details: + title: Details + type: object
4118-4166: RunAssistantRequest input shape differs from Maestro.Here
inputis strictly an array of Message;CreateMaestroRunsPayload.inputallows string or array. Align or document why they differ to avoid UX confusion.- input: - type: array - items: - $ref: '#/components/schemas/Message' + input: + anyOf: + - type: array + items: + $ref: '#/components/schemas/Message' + - type: string
4478-4495: WebSearchToolResource: enforce URL formats and sensible default.
- Mark
urlsitems asformat: uri.- Add default
fallback_to_web: false(explicit).urls: title: Urls type: array items: - type: string + type: string + format: uri fallback_to_web: title: Fallback To Web type: boolean + default: false
4638-4654: Misleading description for Requirement.id.The copy-pasted “A unique ID for the request” is inaccurate for a requirement entity.
id: title: Id type: string - description: "A unique ID for the request (not the message)..." + description: "Unique identifier of the requirement."
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (136)
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.AssistantResponseLanguage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.AssistantResponseLanguageNullable.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.ModifyAssistantRequestResponseLanguage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.JsonConverters.ModifyAssistantRequestResponseLanguageNullable.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.AssistantResponseLanguage.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.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.MaestroRunError.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MaestroRunError.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MaestroRunResult.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.ModifyAssistantRequestResponseLanguage.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 (3)
src/libs/AI21/openapi.yaml (3)
2888-2901: OK: Tool union reference.Good alignment to execution_engine ToolDefinition and dedicated ToolResource for Maestro.
4685-4698: Discriminator mapping: good structure.The oneOf + discriminator over type looks correct and future‑proof.
2469-2473: Chat tool definition reference: looks correct.The switch to public
chat::ToolDefinitionfor ChatRequest.tools is consistent.
| '/studio/v1/demos/regulations/vector-store/{vector_store_id}': | ||
| get: | ||
| summary: Get Vector Store | ||
| description: Get a vector store by ID. | ||
| operationId: get_vector_store_studio_v1_demos_regulations_vector_store__vector_store_id__get | ||
| parameters: | ||
| - name: vector_store_id | ||
| in: path | ||
| required: true | ||
| schema: | ||
| title: Vector Store Id | ||
| type: string | ||
| 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 | ||
| '422': | ||
| description: Validation Error | ||
| content: | ||
| application/json: | ||
| schema: | ||
| $ref: '#/components/schemas/HTTPValidationError' |
There was a problem hiding this comment.
Add 404 + tighten path param format.
- Include a 404 response for unknown vector_store_id.
- If IDs are UUIDs, add
format: uuidto the path param. - Consider a concrete object schema instead of anonymous
{}with a verbose title.
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: Vector store not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'📝 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.
| '/studio/v1/demos/regulations/vector-store/{vector_store_id}': | |
| get: | |
| summary: Get Vector Store | |
| description: Get a vector store by ID. | |
| operationId: get_vector_store_studio_v1_demos_regulations_vector_store__vector_store_id__get | |
| parameters: | |
| - name: vector_store_id | |
| in: path | |
| required: true | |
| schema: | |
| title: Vector Store Id | |
| type: string | |
| 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 | |
| '422': | |
| description: Validation Error | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/HTTPValidationError' | |
| '/studio/v1/demos/regulations/vector-store/{vector_store_id}': | |
| get: | |
| summary: Get Vector Store | |
| description: Get a vector store by ID. | |
| operationId: get_vector_store_studio_v1_demos_regulations_vector_store__vector_store_id__get | |
| parameters: | |
| - name: vector_store_id | |
| in: path | |
| required: true | |
| schema: | |
| title: Vector Store Id | |
| 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: Vector store not found | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/HTTPValidationError' | |
| '422': | |
| description: Validation Error | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/HTTPValidationError' |
🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 1018 to 1043, the GET
/studio/v1/demos/regulations/vector-store/{vector_store_id} operation is missing
a 404 response for unknown IDs, the path parameter lacks a concrete format, and
the successful response uses an anonymous object schema with an overly verbose
title; add a '404' response with a descriptive schema (or reference) for "Not
Found", add format: uuid to the vector_store_id parameter if IDs are UUIDs
(otherwise specify the correct format or a pattern), and replace the anonymous
response schema with a concrete reusable schema reference (e.g.,
components/schemas/VectorStore) or define a clear object schema with properties
so the response is well-typed.
| summary: Modify Assistant | ||
| operationId: v1_modify_assistant | ||
| parameters: | ||
| - name: assistant_id | ||
| in: path | ||
| required: true | ||
| schema: | ||
| title: Assistant Id | ||
| type: string | ||
| requestBody: | ||
| content: | ||
| application/json: | ||
| schema: | ||
| $ref: '#/components/schemas/ModifyAssistantRequest' | ||
| required: true | ||
| responses: | ||
| '200': | ||
| description: Successful Response | ||
| content: | ||
| application/json: | ||
| schema: | ||
| $ref: '#/components/schemas/Assistant' | ||
| '422': | ||
| description: Validation Error | ||
| content: | ||
| application/json: | ||
| schema: | ||
| $ref: '#/components/schemas/HTTPValidationError' |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Mismatch: optimization type and tool_resources type.
ModifyAssistantRequest.optimization uses RunOptimization, but Assistant.optimization and CreateAssistantRequest.optimization are string. Also, CreateAssistantRequest.tool_resources is object while others use AssistantToolResource.
# In Assistant.properties.optimization
-optimization:
- title: Optimization
- type: string
+optimization:
+ $ref: '#/components/schemas/RunOptimization'
# In CreateAssistantRequest.properties.optimization
-optimization:
- title: Optimization
- type: string
+optimization:
+ $ref: '#/components/schemas/RunOptimization'
# In CreateAssistantRequest.properties.tool_resources
-tool_resources:
- title: Tool Resources
- type: object
+tool_resources:
+ $ref: '#/components/schemas/AssistantToolResource'📝 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.
| summary: Modify Assistant | |
| operationId: v1_modify_assistant | |
| parameters: | |
| - name: assistant_id | |
| in: path | |
| required: true | |
| schema: | |
| title: Assistant Id | |
| type: string | |
| requestBody: | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/ModifyAssistantRequest' | |
| required: true | |
| responses: | |
| '200': | |
| description: Successful Response | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/Assistant' | |
| '422': | |
| description: Validation Error | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/HTTPValidationError' | |
| # components/schemas/Assistant (properties) | |
| optimization: | |
| $ref: '#/components/schemas/RunOptimization' | |
| # components/schemas/CreateAssistantRequest (properties) | |
| optimization: | |
| $ref: '#/components/schemas/RunOptimization' | |
| tool_resources: | |
| $ref: '#/components/schemas/AssistantToolResource' |
🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 1590 to 1617, the schemas are
inconsistent: ModifyAssistantRequest.optimization references RunOptimization
while Assistant.optimization and CreateAssistantRequest.optimization are plain
strings, and CreateAssistantRequest.tool_resources is a generic object while
other definitions use AssistantToolResource; make these types consistent across
the API by either changing ModifyAssistantRequest.optimization to type: string
(to match Assistant and CreateAssistantRequest) or converting Assistant and
CreateAssistantRequest.optimization to $ref:
'#/components/schemas/RunOptimization' (pick one approach project-wide), and
change CreateAssistantRequest.tool_resources to use $ref:
'#/components/schemas/AssistantToolResource' (or update the
AssistantToolResource schema to match the object shape), then update any
references and examples accordingly to keep all three schemas aligned.
| 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: |
There was a problem hiding this comment.
🛠️ Refactor suggestion
CreateAssistantRequest parity gaps.
- Missing
visibilityandresponse_languagepresent on Assistant/Modify. - See earlier note on
optimizationenum andtool_resourcesref.
properties:
+ visibility:
+ $ref: '#/components/schemas/Visibility'
+ response_language:
+ allOf:
+ - $ref: '#/components/schemas/Assistant.properties.response_language'Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 2830 to 2873, the
CreateAssistantRequest schema is missing fields and mismatches noted in the
review: add the visibility (string enum matching Assistant/Modify values) and
response_language (string, default/enum matching Assistant/Modify) properties to
the schema; update optimization to use the same enum definition used elsewhere
(replace plain string with a $ref to the existing Optimization enum or copy the
enum values) and change tool_resources from a generic object to the correct
referenced schema (use the same $ref used elsewhere for tool_resources); ensure
defaults match Assistant/Modify (e.g., assistant_type and budget already have
defaults) and validate the schema compiles with the rest of the spec.
Summary by CodeRabbit
New Features
Improvements