@@ -110,6 +110,99 @@ tags:
110110- name: Redirect
111111 description: Redirects for SDK generated links
112112paths:
113+ /oauth/authorize:
114+ get:
115+ tags:
116+ - MCP OAuth
117+ summary: OAuth Authorization Endpoint
118+ description: "OAuth 2.1 authorization endpoint (RFC 6749 §3.1). Validates the\
119+ \ client and PKCE parameters, then redirects to the login or consent page"
120+ operationId: authorize
121+ parameters:
122+ - name: client_id
123+ in: query
124+ required: true
125+ schema:
126+ minLength: 1
127+ type: string
128+ - name: redirect_uri
129+ in: query
130+ required: true
131+ schema:
132+ minLength: 1
133+ type: string
134+ - name: response_type
135+ in: query
136+ schema:
137+ type: string
138+ - name: code_challenge
139+ in: query
140+ schema:
141+ type: string
142+ - name: code_challenge_method
143+ in: query
144+ schema:
145+ type: string
146+ - name: resource
147+ in: query
148+ schema:
149+ type: string
150+ - name: state
151+ in: query
152+ schema:
153+ type: string
154+ responses:
155+ "302":
156+ description: "Redirect to login, consent, or client redirect_uri with an\
157+ \ error"
158+ post:
159+ tags:
160+ - MCP OAuth
161+ summary: Submit Authorization Consent
162+ description: "Submit the user's consent, issue an authorization code, and return\
163+ \ the client redirect target"
164+ operationId: consent
165+ requestBody:
166+ content:
167+ application/json:
168+ schema:
169+ $ref: "#/components/schemas/ConsentRequest"
170+ required: true
171+ responses:
172+ "200":
173+ description: Consent response with the client redirect target
174+ content:
175+ application/json:
176+ schema:
177+ $ref: "#/components/schemas/ConsentResponse"
178+ /oauth/authorize/context:
179+ get:
180+ tags:
181+ - MCP OAuth
182+ summary: Get Authorization Consent Context
183+ description: "Get the client details, eligible workspaces, and a CSRF token\
184+ \ used to render the consent screen"
185+ operationId: getAuthorizeContext
186+ parameters:
187+ - name: client_id
188+ in: query
189+ required: true
190+ schema:
191+ minLength: 1
192+ type: string
193+ - name: redirect_uri
194+ in: query
195+ required: true
196+ schema:
197+ minLength: 1
198+ type: string
199+ responses:
200+ "200":
201+ description: Authorization consent context
202+ content:
203+ application/json:
204+ schema:
205+ $ref: "#/components/schemas/AuthorizeContext"
113206 /.well-known/oauth-authorization-server:
114207 get:
115208 tags:
@@ -1270,6 +1363,55 @@ paths:
12701363 application/json:
12711364 schema:
12721365 $ref: "#/components/schemas/ErrorMessage"
1366+ /v1/private/annotation-queues/{queueId}/locks:
1367+ get:
1368+ tags:
1369+ - Annotation Queues
1370+ summary: Get all active locks for an annotation queue
1371+ description: Returns lock status for all actively locked items in the queue
1372+ operationId: getAnnotationQueueLocks
1373+ parameters:
1374+ - name: queueId
1375+ in: path
1376+ required: true
1377+ schema:
1378+ type: string
1379+ format: uuid
1380+ responses:
1381+ "200":
1382+ description: Queue locks
1383+ content:
1384+ application/json:
1385+ schema:
1386+ $ref: "#/components/schemas/LocksResponse"
1387+ /v1/private/annotation-queues/{queueId}/items/{itemId}/lock:
1388+ put:
1389+ tags:
1390+ - Annotation Queues
1391+ summary: Create or extend annotation queue item lock
1392+ description: "Claim an annotation queue item for the current user, or extend\
1393+ \ an existing lock"
1394+ operationId: lockAnnotationQueueItem
1395+ parameters:
1396+ - name: queueId
1397+ in: path
1398+ required: true
1399+ schema:
1400+ type: string
1401+ format: uuid
1402+ - name: itemId
1403+ in: path
1404+ required: true
1405+ schema:
1406+ type: string
1407+ format: uuid
1408+ responses:
1409+ "200":
1410+ description: Lock result
1411+ content:
1412+ application/json:
1413+ schema:
1414+ $ref: "#/components/schemas/LockResponse"
12731415 /v1/private/annotation-queues/{id}/items/delete:
12741416 post:
12751417 tags:
@@ -3405,7 +3547,7 @@ paths:
34053547 schema:
34063548 $ref: "#/components/schemas/ErrorMessage"
34073549 "409":
3408- description: Experiment dataset mismatch
3550+ description: Conflict
34093551 content:
34103552 application/json:
34113553 schema:
@@ -8676,6 +8818,64 @@ paths:
86768818 application/json: {}
86778819components:
86788820 schemas:
8821+ ConsentResponse:
8822+ type: object
8823+ properties:
8824+ redirect_to:
8825+ type: string
8826+ ConsentRequest:
8827+ required:
8828+ - client_id
8829+ - code_challenge
8830+ - code_challenge_method
8831+ - redirect_uri
8832+ - resource
8833+ type: object
8834+ properties:
8835+ client_id:
8836+ minLength: 1
8837+ type: string
8838+ redirect_uri:
8839+ minLength: 1
8840+ type: string
8841+ code_challenge:
8842+ minLength: 1
8843+ type: string
8844+ code_challenge_method:
8845+ minLength: 1
8846+ pattern: S256
8847+ type: string
8848+ resource:
8849+ minLength: 1
8850+ type: string
8851+ state:
8852+ type: string
8853+ workspace_id:
8854+ type: string
8855+ workspace_name:
8856+ type: string
8857+ csrf:
8858+ type: string
8859+ AuthorizeContext:
8860+ type: object
8861+ properties:
8862+ client_name:
8863+ type: string
8864+ client_logo_uri:
8865+ type: string
8866+ workspaces:
8867+ type: array
8868+ items:
8869+ $ref: "#/components/schemas/WorkspaceInfo"
8870+ csrf_token:
8871+ type: string
8872+ WorkspaceInfo:
8873+ type: object
8874+ properties:
8875+ id:
8876+ type: string
8877+ name:
8878+ type: string
86798879 AuthorizationServerMetadata:
86808880 type: object
86818881 properties:
@@ -9823,6 +10023,11 @@ components:
982310023 minimum: 1
982410024 type: integer
982510025 format: int32
10026+ lock_timeout_seconds:
10027+ maximum: 3600
10028+ minimum: 1
10029+ type: integer
10030+ format: int32
982610031 reviewers:
982710032 type: array
982810033 readOnly: true
@@ -9908,6 +10113,11 @@ components:
990810113 minimum: 1
990910114 type: integer
991010115 format: int32
10116+ lock_timeout_seconds:
10117+ maximum: 3600
10118+ minimum: 1
10119+ type: integer
10120+ format: int32
991110121 description: List of annotation queues to create
991210122 AnnotationQueueBatch:
991310123 required:
@@ -10005,6 +10215,11 @@ components:
1000510215 minimum: 1
1000610216 type: integer
1000710217 format: int32
10218+ lock_timeout_seconds:
10219+ maximum: 3600
10220+ minimum: 1
10221+ type: integer
10222+ format: int32
1000810223 reviewers:
1000910224 type: array
1001010225 readOnly: true
@@ -10045,6 +10260,36 @@ components:
1004510260 value:
1004610261 type: number
1004710262 readOnly: true
10263+ ItemLockInfo:
10264+ type: object
10265+ properties:
10266+ active_locks:
10267+ type: integer
10268+ format: int32
10269+ locked_by:
10270+ type: array
10271+ items:
10272+ type: string
10273+ LocksResponse:
10274+ type: object
10275+ properties:
10276+ locks:
10277+ type: object
10278+ additionalProperties:
10279+ $ref: "#/components/schemas/ItemLockInfo"
10280+ LockResponse:
10281+ type: object
10282+ properties:
10283+ acquired:
10284+ type: boolean
10285+ item_id:
10286+ type: string
10287+ format: uuid
10288+ locked_by:
10289+ type: string
10290+ expires_at:
10291+ type: string
10292+ format: date-time
1004810293 AnnotationQueueUpdate:
1004910294 type: object
1005010295 properties:
@@ -10067,6 +10312,11 @@ components:
1006710312 minimum: 1
1006810313 type: integer
1006910314 format: int32
10315+ lock_timeout_seconds:
10316+ maximum: 3600
10317+ minimum: 1
10318+ type: integer
10319+ format: int32
1007010320 AssertionResultBatch:
1007110321 required:
1007210322 - assertion_results
@@ -15144,6 +15394,13 @@ components:
1514415394 \ or experiment with that ID doesn't exist, a new experiment will be created\
1514515395 \ with the given experimentName"
1514615396 format: uuid
15397+ project_name:
15398+ pattern: (?s)^\s*(\S.*\S|\S)\s*$
15399+ type: string
15400+ description: "Project for traces auto-created from items that provide evaluate_task_result\
15401+ \ (i.e. without an explicit trace). If null, the default project is used;\
15402+ \ relying on this fallback is deprecated, please provide project_name\
15403+ \ explicitly."
1514715404 items:
1514815405 maxItems: 1000
1514915406 minItems: 1
@@ -15488,6 +15745,13 @@ components:
1548815745 \ or experiment with that ID doesn't exist, a new experiment will be created\
1548915746 \ with the given experimentName"
1549015747 format: uuid
15748+ project_name:
15749+ pattern: (?s)^\s*(\S.*\S|\S)\s*$
15750+ type: string
15751+ description: "Project for traces auto-created from items that provide evaluate_task_result\
15752+ \ (i.e. without an explicit trace). If null, the default project is used;\
15753+ \ relying on this fallback is deprecated, please provide project_name\
15754+ \ explicitly."
1549115755 items:
1549215756 maxItems: 1000
1549315757 minItems: 1
0 commit comments