-
-
Notifications
You must be signed in to change notification settings - Fork 1
feat:OpenAPI: add vector-store/MCP endpoints, assistant payloads, enums #216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughThe OpenAPI spec adds new endpoints for vector-store retrieval and MCP discovery, introduces assistant creation/modification/run payloads, expands Assistant fields, refactors tool definitions/resources (HTTP/MCP/File/Web), adds enums (BudgetLevel, AssistantType, Visibility, RunOptimization), updates Maestro run result with error, and consolidates references to namespaced ToolDefinition schemas. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Client
participant API as Studio API
participant MCP as MCP Server
rect rgb(240,248,255)
note over Client,API: MCP tool discovery (new)
Client->>API: POST /studio/v1/mcp/discover { MCPDefinition }
API->>MCP: Connect using server_url, headers
MCP-->>API: Tools list (name, description, inputSchema)
API-->>Client: MCPDiscoveryResponse { mcp_definition, tools }
end
sequenceDiagram
autonumber
participant Client
participant API as Studio API
participant Engine as Execution Engine
participant Maestro as Maestro Runner
participant DS as Data Sources
rect rgb(245,255,245)
note over Client,API: Assistant run (new payloads/fields)
Client->>API: RunAssistantRequest { input, options, response_language }
API->>Engine: Start run (tools, requirements, optimization)
Engine->>DS: Fetch/search (file_search/web_search) as needed
Engine->>Maestro: Execute plan (may fail)
alt success
Maestro-->>Engine: MaestroRunResult { output }
Engine-->>API: Aggregated result
API-->>Client: 200 OK { result, includes }
else error
Maestro-->>Engine: MaestroRunResult { error: MaestroRunError }
Engine-->>API: Result with error
API-->>Client: 200 OK { error in result }
end
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~75 minutes Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
src/libs/AI21/openapi.yaml (2)
2103-2105: Unify optimization type: use RunOptimization everywhere.
Assistant.optimizationis a free string, whileModifyAssistantRequest.optimizationisRunOptimization. MakeAssistant.optimizationalsoRunOptimization.- optimization: - title: Optimization - type: string + optimization: + allOf: + - $ref: '#/components/schemas/RunOptimization'Additionally, align
CreateAssistantRequest.optimizationsimilarly (see below).Also applies to: 3916-3918
2282-2286: Budget enum casing inconsistency (MEDIUM vs medium).
Body_*payloads default to uppercase MEDIUM whileBudgetLevelenum is lowercase. This will confuse validators.@@ Body_process_rfi_document_studio_v1_demos_rfi_process_rfi_post - budget: - title: Budget - type: string - description: 'Budget level: LOW, MEDIUM, or HIGH' - default: MEDIUM + budget: + allOf: + - $ref: '#/components/schemas/BudgetLevel' + description: Budget level + default: medium @@ Body_upload_check_compliance_studio_v1_demos_regulations_upload_check_compliance_post - budget: - title: Budget - type: string - default: MEDIUM + budget: + allOf: + - $ref: '#/components/schemas/BudgetLevel' + default: mediumAlso applies to: 2301-2304, 2344-2349
🧹 Nitpick comments (5)
src/libs/AI21/openapi.yaml (5)
1520-1541: Use 201 Created with Location header for resource creation.Creating an Assistant should return 201 and expose the URL of the new resource.
- responses: - '200': - description: Successful Response + responses: + '201': + description: Created + headers: + Location: + description: URL of the created resource. + schema: + type: string content: application/json: schema: $ref: '#/components/schemas/Assistant'
1619-1647: Consider async 202 for runs (in addition to 200).Runs may start asynchronously. Returning 202 with an execution_id lets clients poll
/studio/v1/maestro/runs/{execution_id}.responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MaestroRunResult' + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/MaestroRunResult'
2305-2308: Fix misleading description for vector_store_id.The compliance endpoint’s
vector_store_idsays “RFI processing”.vector_store_id: title: Vector Store Id type: string - description: Vector store ID to use for RFI processing + description: Vector store ID to use for compliance checking
3411-3412: Constrain HTTP headers map to string values.Currently
headersis an untyped object.HTTPToolEndpoint: title: HTTPToolEndpoint required: - url type: object properties: url: title: Url type: string headers: title: Headers - type: object + type: object + additionalProperties: + type: string
2830-2873: Allow response_language on create for parity with Assistant.
Assistantexposesresponse_language, butCreateAssistantRequestcannot set it.CreateAssistantRequest: title: CreateAssistantRequest required: - name type: object properties: @@ assistant_type: allOf: - $ref: '#/components/schemas/AssistantType' default: default + response_language: + title: Response Language + enum: + - arabic + - dutch + - english + - french + - german + - hebrew + - italian + - portuguese + - spanish + - unset + type: string + default: unsetAlso align
optimizationhere withRunOptimization:- optimization: - title: Optimization - type: string + optimization: + $ref: '#/components/schemas/RunOptimization'
📜 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 (1)
src/libs/AI21/openapi.yaml (1)
3715-3718: Keep camelCase "inputSchema" (MCP requires it).
MCP spec (2024-11-05) defines the tool field as "inputSchema" in camelCase; leave src/libs/AI21/openapi.yaml (lines 3715–3718) unchanged.Likely an incorrect or invalid review comment.
| '/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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add 404, fix title, and type the path param as UUID.
The new vector-store endpoint should return 404 when the ID isn’t found; the title string has duplicate spaces; and vector_store_id looks like a UUID but lacks format.
Apply this diff:
'/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
+ 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
+ title: Response Get Vector Store Studio V1 Demos Regulations Vector Store Id Get
type: object
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
+ '404':
+ description: Not FoundAlso consider introducing a concrete VectorStore schema and returning it here.
📝 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 Id Get | |
| type: object | |
| '422': | |
| description: Validation Error | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/HTTPValidationError' | |
| '404': | |
| description: Not Found |
🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 1018 to 1043, the GET vector-store
path needs three fixes: add a '404' response for not-found cases, correct the
duplicated spaces in the response schema title, and mark the path parameter
vector_store_id with format: uuid (type remains string) to reflect UUID usage;
additionally, change the 200 response schema to reference or define a concrete
VectorStore component schema (e.g., $ref: '#/components/schemas/VectorStore') so
the endpoint returns a typed object.
| title: Tool Resources | ||
| type: object | ||
| requirements: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normalize tool_resources type to ToolResource.
Four places use different shapes: Assistant uses AssistantToolResource, CreateAssistantRequest uses object, ModifyAssistantRequest uses AssistantToolResource, MaestroRun uses ToolResource. Pick ToolResource across the board and deprecate AssistantToolResource.
@@ CreateAssistantRequest
- tool_resources:
- title: Tool Resources
- type: object
+ tool_resources:
+ $ref: '#/components/schemas/ToolResource'
@@ Assistant
- tool_resources:
- $ref: '#/components/schemas/AssistantToolResource'
+ tool_resources:
+ $ref: '#/components/schemas/ToolResource'
@@ ModifyAssistantRequest
- tool_resources:
- $ref: '#/components/schemas/AssistantToolResource'
+ tool_resources:
+ $ref: '#/components/schemas/ToolResource'If keeping AssistantToolResource for compatibility, mark it deprecated:
AssistantToolResource:
title: AssistantToolResource
type: object
+ deprecated: trueAlso applies to: 2134-2134, 3936-3937, 2900-2901
| title: HTTPToolFunctionParameters | ||
| required: | ||
| - properties | ||
| - required | ||
| type: object | ||
| properties: | ||
| type: | ||
| title: Type | ||
| enum: | ||
| - object | ||
| type: string | ||
| default: object | ||
| properties: | ||
| title: Properties | ||
| type: object | ||
| additionalProperties: | ||
| $ref: '#/components/schemas/HTTPToolFunctionParamProperties' | ||
| required: | ||
| title: Required | ||
| type: array | ||
| items: | ||
| type: string | ||
| additionalProperties: | ||
| title: Additionalproperties | ||
| type: boolean | ||
| default: false | ||
| HTTPToolResource: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix misuse of JSON Schema “additionalProperties”.
You modeled additionalProperties as a field inside the object. It must be a schema constraint at the same level as type/properties.
HTTPToolFunctionParameters:
title: HTTPToolFunctionParameters
required:
- properties
- required
type: object
+ additionalProperties: false
properties:
type:
title: Type
enum:
- object
type: string
default: object
properties:
title: Properties
type: object
additionalProperties:
$ref: '#/components/schemas/HTTPToolFunctionParamProperties'
required:
title: Required
type: array
items:
type: string
- additionalProperties:
- title: Additionalproperties
- type: boolean
- default: false📝 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.
| title: HTTPToolFunctionParameters | |
| required: | |
| - properties | |
| - required | |
| type: object | |
| properties: | |
| type: | |
| title: Type | |
| enum: | |
| - object | |
| type: string | |
| default: object | |
| properties: | |
| title: Properties | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/HTTPToolFunctionParamProperties' | |
| required: | |
| title: Required | |
| type: array | |
| items: | |
| type: string | |
| additionalProperties: | |
| title: Additionalproperties | |
| type: boolean | |
| default: false | |
| HTTPToolResource: | |
| title: HTTPToolFunctionParameters | |
| required: | |
| - properties | |
| - required | |
| type: object | |
| additionalProperties: false | |
| properties: | |
| type: | |
| title: Type | |
| enum: | |
| - object | |
| type: string | |
| default: object | |
| properties: | |
| title: Properties | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/HTTPToolFunctionParamProperties' | |
| required: | |
| title: Required | |
| type: array | |
| items: | |
| type: string | |
| HTTPToolResource: |
🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 3443 to 3469, the schema incorrectly
defines additionalProperties as a regular property inside the object instead of
as a schema constraint; move the additionalProperties definition out of the
properties map to the same level as type/properties/required (so the
HTTPToolFunctionParameters schema has an additionalProperties: false or a schema
definition at root), remove the duplicate additionalProperties entry under
properties, and ensure the top-level additionalProperties is typed as a boolean
or a valid schema object per JSON Schema.
| title: IgnestionBatchStatusCount | ||
| required: | ||
| - status | ||
| - count | ||
| type: object |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: “IgnestionBatchStatusCount” → “IngestionBatchStatusCount”.
Public schema name is misspelled and referenced downstream.
- IgnestionBatchStatusCount:
+ IgnestionBatchStatusCount:
title: IgnestionBatchStatusCount
required:
- status
- count
+ deprecated: true
type: object@@ IngestionBatchStatusResponse.statuses.items
- $ref: '#/components/schemas/IgnestionBatchStatusCount'
+ $ref: '#/components/schemas/IngestionBatchStatusCount'Add the correctly spelled schema (new block):
# New schema (add under components/schemas)
IngestionBatchStatusCount:
title: IngestionBatchStatusCount
required:
- status
- count
type: object
properties:
status:
title: Status
type: string
count:
title: Count
type: integerAlso applies to: 3525-3529
🤖 Prompt for AI Agents
In src/libs/AI21/openapi.yaml around lines 3496-3500 (and similarly at
3525-3529) the public schema name is misspelled as "IgnestionBatchStatusCount";
create a correctly spelled schema block "IngestionBatchStatusCount" under
components/schemas with title, required status and count, type object, and
properties status (string) and count (integer), then replace or alias any
references to the misspelled "IgnestionBatchStatusCount" to point to
"IngestionBatchStatusCount" (or remove the misspelled block) so downstream refs
use the correct name.
Summary by CodeRabbit