@thinkai/tai-api-contract 2.104.0 → 2.106.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ThinkAI API
4
- version: 2.104.0
4
+ version: 2.106.0
5
5
  description: >
6
6
  Contract surface for the AI Driven SDLC backend used by ThinkAI.
7
7
  Workspace-scoped routes use `/workspaces/{workspaceId}/...`.
@@ -6220,6 +6220,68 @@ paths:
6220
6220
  schema:
6221
6221
  $ref: "#/components/schemas/ErrorMessageDto"
6222
6222
 
6223
+ /workspaces/{workspaceId}/readiness/score-history/average:
6224
+ get:
6225
+ tags: [RepositoryReadiness]
6226
+ summary: Workspace-average readiness score time-series
6227
+ description: >
6228
+ Returns pre-aggregated workspace-average readiness scores over time, aligned with
6229
+ agentic-foundation `summary.averageOverallScore`. Each point reflects the mean of each
6230
+ repo's latest succeeded run score over **totalRepoCount** (unscanned repos count as 0%).
6231
+ Per-repo input runs are loaded without applying `since` so repos scanned before the window
6232
+ still contribute carry-forward scores; `since` filters **returned** points only. Appends a
6233
+ final point from the live dashboard summary when the current average differs from the last
6234
+ visible point (or when the filtered window is empty). `limitPerRepo` bounds how many
6235
+ succeeded runs per repo are considered when building the series.
6236
+ operationId: getReadinessAverageScoreHistory
6237
+ parameters:
6238
+ - $ref: "#/components/parameters/WorkspaceId"
6239
+ - name: since
6240
+ in: query
6241
+ description: >
6242
+ ISO-8601 lower bound on returned point `finishedAt` (inclusive). Per-repo input
6243
+ runs are loaded without this filter so scores established before the window still
6244
+ contribute to aggregation.
6245
+ schema:
6246
+ type: string
6247
+ format: date-time
6248
+ - name: limitPerRepo
6249
+ in: query
6250
+ schema:
6251
+ type: integer
6252
+ minimum: 1
6253
+ maximum: 200
6254
+ default: 50
6255
+ responses:
6256
+ "200":
6257
+ description: Workspace-average score history
6258
+ content:
6259
+ application/json:
6260
+ schema:
6261
+ $ref: "#/components/schemas/WorkspaceAverageReadinessScoreHistoryDto"
6262
+ "400":
6263
+ description: Invalid query
6264
+ content:
6265
+ application/json:
6266
+ schema:
6267
+ $ref: "#/components/schemas/ErrorMessageDto"
6268
+ "401":
6269
+ $ref: "#/components/responses/Unauthorized"
6270
+ "403":
6271
+ $ref: "#/components/responses/Forbidden"
6272
+ "404":
6273
+ description: Workspace does not exist
6274
+ content:
6275
+ application/json:
6276
+ schema:
6277
+ $ref: "#/components/schemas/ErrorMessageDto"
6278
+ "501":
6279
+ description: Readiness score history or dashboard summary not supported
6280
+ content:
6281
+ application/json:
6282
+ schema:
6283
+ $ref: "#/components/schemas/ErrorMessageDto"
6284
+
6223
6285
  /workspaces/{workspaceId}/agentic-foundation/repo-scope:
6224
6286
  put:
6225
6287
  tags: [AgenticFoundation]
@@ -6784,6 +6846,7 @@ paths:
6784
6846
  - $ref: "#/components/parameters/ReadinessFixSearch"
6785
6847
  - $ref: "#/components/parameters/ReadinessFixStatusFilter"
6786
6848
  - $ref: "#/components/parameters/ReadinessFixRepoIdFilter"
6849
+ - $ref: "#/components/parameters/ReadinessFixIssueIdsFilter"
6787
6850
  responses:
6788
6851
  "200":
6789
6852
  description: Paginated fix queue
@@ -6792,7 +6855,7 @@ paths:
6792
6855
  schema:
6793
6856
  $ref: "#/components/schemas/ReadinessFixListDto"
6794
6857
  "400":
6795
- description: Invalid pagination or sort query
6858
+ description: Invalid pagination, sort, or issueIds query
6796
6859
  content:
6797
6860
  application/json:
6798
6861
  schema:
@@ -9270,6 +9333,21 @@ components:
9270
9333
  schema:
9271
9334
  type: string
9272
9335
  format: uuid
9336
+ ReadinessFixIssueIdsFilter:
9337
+ name: issueIds
9338
+ in: query
9339
+ required: false
9340
+ description: >
9341
+ Filter fixes to specific readiness issue ids (repeat param or comma-separated UUIDs).
9342
+ At most 100 ids per request. Omitted = no issue-id filter.
9343
+ schema:
9344
+ type: array
9345
+ maxItems: 100
9346
+ items:
9347
+ type: string
9348
+ format: uuid
9349
+ style: form
9350
+ explode: true
9273
9351
  ReadinessFixSearch:
9274
9352
  name: search
9275
9353
  in: query
@@ -15100,6 +15178,30 @@ components:
15100
15178
  items:
15101
15179
  $ref: "#/components/schemas/ReadinessRepoScoreHistoryDto"
15102
15180
 
15181
+ WorkspaceAverageReadinessScoreHistoryDto:
15182
+ type: object
15183
+ required: [workspaceId, generatedAt, totalRepoCount, points]
15184
+ properties:
15185
+ workspaceId:
15186
+ type: string
15187
+ format: uuid
15188
+ generatedAt:
15189
+ type: string
15190
+ format: date-time
15191
+ totalRepoCount:
15192
+ type: integer
15193
+ minimum: 0
15194
+ description: >
15195
+ All non-archived repos in the workspace (denominator for average; unscored repos
15196
+ count as 0%).
15197
+ points:
15198
+ type: array
15199
+ items:
15200
+ $ref: "#/components/schemas/ReadinessScoreHistoryPointDto"
15201
+ description: >
15202
+ Workspace-average score after each scan event, ascending by `finishedAt`. May include
15203
+ a final point from the live dashboard summary.
15204
+
15103
15205
  RepoReadinessScoreDto:
15104
15206
  type: object
15105
15207
  required:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.104.0",
3
+ "version": "2.106.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -2332,6 +2332,26 @@ export interface paths {
2332
2332
  patch?: never;
2333
2333
  trace?: never;
2334
2334
  };
2335
+ "/workspaces/{workspaceId}/readiness/score-history/average": {
2336
+ parameters: {
2337
+ query?: never;
2338
+ header?: never;
2339
+ path?: never;
2340
+ cookie?: never;
2341
+ };
2342
+ /**
2343
+ * Workspace-average readiness score time-series
2344
+ * @description Returns pre-aggregated workspace-average readiness scores over time, aligned with agentic-foundation `summary.averageOverallScore`. Each point reflects the mean of each repo's latest succeeded run score over **totalRepoCount** (unscanned repos count as 0%). Per-repo input runs are loaded without applying `since` so repos scanned before the window still contribute carry-forward scores; `since` filters **returned** points only. Appends a final point from the live dashboard summary when the current average differs from the last visible point (or when the filtered window is empty). `limitPerRepo` bounds how many succeeded runs per repo are considered when building the series.
2345
+ */
2346
+ get: operations["getReadinessAverageScoreHistory"];
2347
+ put?: never;
2348
+ post?: never;
2349
+ delete?: never;
2350
+ options?: never;
2351
+ head?: never;
2352
+ patch?: never;
2353
+ trace?: never;
2354
+ };
2335
2355
  "/workspaces/{workspaceId}/agentic-foundation/repo-scope": {
2336
2356
  parameters: {
2337
2357
  query?: never;
@@ -6424,6 +6444,16 @@ export interface components {
6424
6444
  generatedAt: string;
6425
6445
  repos: components["schemas"]["ReadinessRepoScoreHistoryDto"][];
6426
6446
  };
6447
+ WorkspaceAverageReadinessScoreHistoryDto: {
6448
+ /** Format: uuid */
6449
+ workspaceId: string;
6450
+ /** Format: date-time */
6451
+ generatedAt: string;
6452
+ /** @description All non-archived repos in the workspace (denominator for average; unscored repos count as 0%). */
6453
+ totalRepoCount: number;
6454
+ /** @description Workspace-average score after each scan event, ascending by `finishedAt`. May include a final point from the live dashboard summary. */
6455
+ points: components["schemas"]["ReadinessScoreHistoryPointDto"][];
6456
+ };
6427
6457
  RepoReadinessScoreDto: {
6428
6458
  /** Format: uuid */
6429
6459
  repoId: string;
@@ -8413,6 +8443,8 @@ export interface components {
8413
8443
  ReadinessFixStatusFilter: "queued" | "generating" | "pr-created" | "merged" | "failed";
8414
8444
  /** @description Filter fixes to a single workspace repository id. */
8415
8445
  ReadinessFixRepoIdFilter: string;
8446
+ /** @description Filter fixes to specific readiness issue ids (repeat param or comma-separated UUIDs). At most 100 ids per request. Omitted = no issue-id filter. */
8447
+ ReadinessFixIssueIdsFilter: string[];
8416
8448
  /** @description Case-insensitive filter on repo name, issue title, label, or description. */
8417
8449
  ReadinessFixSearch: string;
8418
8450
  /** @description Page size for the nested installation repo list (default 25, max 100). */
@@ -8658,6 +8690,7 @@ export type ReadinessScoreHistoryDimensionScoreDto = components['schemas']['Read
8658
8690
  export type ReadinessScoreHistoryPointDto = components['schemas']['ReadinessScoreHistoryPointDto'];
8659
8691
  export type ReadinessRepoScoreHistoryDto = components['schemas']['ReadinessRepoScoreHistoryDto'];
8660
8692
  export type WorkspaceReadinessScoreHistoryDto = components['schemas']['WorkspaceReadinessScoreHistoryDto'];
8693
+ export type WorkspaceAverageReadinessScoreHistoryDto = components['schemas']['WorkspaceAverageReadinessScoreHistoryDto'];
8661
8694
  export type RepoReadinessScoreDto = components['schemas']['RepoReadinessScoreDto'];
8662
8695
  export type LinkedRolePendingDto = components['schemas']['LinkedRolePendingDto'];
8663
8696
  export type LinkedRoleAssessmentDto = components['schemas']['LinkedRoleAssessmentDto'];
@@ -8890,6 +8923,7 @@ export type ParameterReadinessRepoLanguage = components['parameters']['Readiness
8890
8923
  export type ParameterReadinessFixSort = components['parameters']['ReadinessFixSort'];
8891
8924
  export type ParameterReadinessFixStatusFilter = components['parameters']['ReadinessFixStatusFilter'];
8892
8925
  export type ParameterReadinessFixRepoIdFilter = components['parameters']['ReadinessFixRepoIdFilter'];
8926
+ export type ParameterReadinessFixIssueIdsFilter = components['parameters']['ReadinessFixIssueIdsFilter'];
8893
8927
  export type ParameterReadinessFixSearch = components['parameters']['ReadinessFixSearch'];
8894
8928
  export type ParameterGithubRepoLimit = components['parameters']['GithubRepoLimit'];
8895
8929
  export type ParameterGithubRepoOffset = components['parameters']['GithubRepoOffset'];
@@ -15024,6 +15058,61 @@ export interface operations {
15024
15058
  };
15025
15059
  };
15026
15060
  };
15061
+ getReadinessAverageScoreHistory: {
15062
+ parameters: {
15063
+ query?: {
15064
+ /** @description ISO-8601 lower bound on returned point `finishedAt` (inclusive). Per-repo input runs are loaded without this filter so scores established before the window still contribute to aggregation. */
15065
+ since?: string;
15066
+ limitPerRepo?: number;
15067
+ };
15068
+ header?: never;
15069
+ path: {
15070
+ workspaceId: components["parameters"]["WorkspaceId"];
15071
+ };
15072
+ cookie?: never;
15073
+ };
15074
+ requestBody?: never;
15075
+ responses: {
15076
+ /** @description Workspace-average score history */
15077
+ 200: {
15078
+ headers: {
15079
+ [name: string]: unknown;
15080
+ };
15081
+ content: {
15082
+ "application/json": components["schemas"]["WorkspaceAverageReadinessScoreHistoryDto"];
15083
+ };
15084
+ };
15085
+ /** @description Invalid query */
15086
+ 400: {
15087
+ headers: {
15088
+ [name: string]: unknown;
15089
+ };
15090
+ content: {
15091
+ "application/json": components["schemas"]["ErrorMessageDto"];
15092
+ };
15093
+ };
15094
+ 401: components["responses"]["Unauthorized"];
15095
+ 403: components["responses"]["Forbidden"];
15096
+ /** @description Workspace does not exist */
15097
+ 404: {
15098
+ headers: {
15099
+ [name: string]: unknown;
15100
+ };
15101
+ content: {
15102
+ "application/json": components["schemas"]["ErrorMessageDto"];
15103
+ };
15104
+ };
15105
+ /** @description Readiness score history or dashboard summary not supported */
15106
+ 501: {
15107
+ headers: {
15108
+ [name: string]: unknown;
15109
+ };
15110
+ content: {
15111
+ "application/json": components["schemas"]["ErrorMessageDto"];
15112
+ };
15113
+ };
15114
+ };
15115
+ };
15027
15116
  putAgenticFoundationRepoScope: {
15028
15117
  parameters: {
15029
15118
  query?: never;
@@ -15717,6 +15806,8 @@ export interface operations {
15717
15806
  status?: components["parameters"]["ReadinessFixStatusFilter"];
15718
15807
  /** @description Filter fixes to a single workspace repository id. */
15719
15808
  repoId?: components["parameters"]["ReadinessFixRepoIdFilter"];
15809
+ /** @description Filter fixes to specific readiness issue ids (repeat param or comma-separated UUIDs). At most 100 ids per request. Omitted = no issue-id filter. */
15810
+ issueIds?: components["parameters"]["ReadinessFixIssueIdsFilter"];
15720
15811
  };
15721
15812
  header?: never;
15722
15813
  path: {
@@ -15735,7 +15826,7 @@ export interface operations {
15735
15826
  "application/json": components["schemas"]["ReadinessFixListDto"];
15736
15827
  };
15737
15828
  };
15738
- /** @description Invalid pagination or sort query */
15829
+ /** @description Invalid pagination, sort, or issueIds query */
15739
15830
  400: {
15740
15831
  headers: {
15741
15832
  [name: string]: unknown;