@thinkai/tai-api-contract 2.7.2 → 2.8.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.7.2
4
+ version: 2.7.3
5
5
  description: >
6
6
  Contract surface for the AI Driven SDLC backend used by ThinkAI.
7
7
  Workspace-scoped routes use `/workspaces/{workspaceId}/...`.
@@ -2348,6 +2348,109 @@ paths:
2348
2348
  schema:
2349
2349
  $ref: "#/components/schemas/ErrorMessageDto"
2350
2350
 
2351
+ /workspaces/{workspaceId}/readiness/repos/{repoId}/runs:
2352
+ get:
2353
+ tags: [RepositoryReadiness]
2354
+ summary: Paginated readiness run history for one repository
2355
+ description: >
2356
+ Append-only scan history for charts on repo detail. Ordered by scan finish time
2357
+ (or `createdAt` when still in progress). Use `cursor` from the previous response for
2358
+ the next page. Failed and `partial_failed` runs are included with nullable `overallScore`.
2359
+ operationId: listReadinessRepoRuns
2360
+ parameters:
2361
+ - $ref: "#/components/parameters/WorkspaceId"
2362
+ - $ref: "#/components/parameters/RepoId"
2363
+ - name: limit
2364
+ in: query
2365
+ schema:
2366
+ type: integer
2367
+ minimum: 1
2368
+ maximum: 100
2369
+ default: 25
2370
+ - name: order
2371
+ in: query
2372
+ schema:
2373
+ type: string
2374
+ enum: [asc, desc]
2375
+ default: desc
2376
+ - name: cursor
2377
+ in: query
2378
+ description: Opaque cursor from a prior response `nextCursor` field.
2379
+ schema:
2380
+ type: string
2381
+ responses:
2382
+ "200":
2383
+ description: Run history page
2384
+ content:
2385
+ application/json:
2386
+ schema:
2387
+ $ref: "#/components/schemas/ReadinessRepoRunListDto"
2388
+ "400":
2389
+ description: Invalid pagination query
2390
+ content:
2391
+ application/json:
2392
+ schema:
2393
+ $ref: "#/components/schemas/ErrorMessageDto"
2394
+ "401":
2395
+ $ref: "#/components/responses/Unauthorized"
2396
+ "403":
2397
+ $ref: "#/components/responses/Forbidden"
2398
+ "404":
2399
+ description: Workspace or repository not found
2400
+ content:
2401
+ application/json:
2402
+ schema:
2403
+ $ref: "#/components/schemas/ErrorMessageDto"
2404
+
2405
+ /workspaces/{workspaceId}/readiness/score-history:
2406
+ get:
2407
+ tags: [RepositoryReadiness]
2408
+ summary: Workspace score time-series for all repositories
2409
+ description: >
2410
+ Returns succeeded runs with stored `overallScore` per repo in one call (avoids N+1).
2411
+ Points are ordered ascending by `finishedAt` within each repo. Omit failed and
2412
+ `partial_failed` runs. Use `since` to bound the window; `limitPerRepo` caps points per repo
2413
+ (most recent first, then returned oldest-to-newest within the cap).
2414
+ operationId: getReadinessScoreHistory
2415
+ parameters:
2416
+ - $ref: "#/components/parameters/WorkspaceId"
2417
+ - name: since
2418
+ in: query
2419
+ description: ISO-8601 lower bound on `finishedAt` (inclusive).
2420
+ schema:
2421
+ type: string
2422
+ format: date-time
2423
+ - name: limitPerRepo
2424
+ in: query
2425
+ schema:
2426
+ type: integer
2427
+ minimum: 1
2428
+ maximum: 200
2429
+ default: 50
2430
+ responses:
2431
+ "200":
2432
+ description: Score history grouped by repository
2433
+ content:
2434
+ application/json:
2435
+ schema:
2436
+ $ref: "#/components/schemas/WorkspaceReadinessScoreHistoryDto"
2437
+ "400":
2438
+ description: Invalid query
2439
+ content:
2440
+ application/json:
2441
+ schema:
2442
+ $ref: "#/components/schemas/ErrorMessageDto"
2443
+ "401":
2444
+ $ref: "#/components/responses/Unauthorized"
2445
+ "403":
2446
+ $ref: "#/components/responses/Forbidden"
2447
+ "404":
2448
+ description: Workspace does not exist
2449
+ content:
2450
+ application/json:
2451
+ schema:
2452
+ $ref: "#/components/schemas/ErrorMessageDto"
2453
+
2351
2454
  /workspaces/{workspaceId}/agentic-foundation/dashboard:
2352
2455
  get:
2353
2456
  tags: [AgenticFoundation]
@@ -2439,6 +2542,7 @@ paths:
2439
2542
  maxScore: 3
2440
2543
  issues: []
2441
2544
  lastAnalyzed: "2026-05-12T12:00:00.000Z"
2545
+ connectedAt: "2026-05-01T10:00:00.000Z"
2442
2546
  teamId: null
2443
2547
  provider:
2444
2548
  kind: github
@@ -5658,6 +5762,92 @@ components:
5658
5762
  items:
5659
5763
  $ref: "#/components/schemas/ReadinessIssueDto"
5660
5764
 
5765
+ ReadinessRepoRunHistoryItemDto:
5766
+ type: object
5767
+ required: [runId, status, overallScore, createdAt, finishedAt]
5768
+ properties:
5769
+ runId:
5770
+ type: string
5771
+ format: uuid
5772
+ status:
5773
+ $ref: "#/components/schemas/ReadinessRunStatusDto"
5774
+ overallScore:
5775
+ type: integer
5776
+ minimum: 0
5777
+ maximum: 100
5778
+ nullable: true
5779
+ description: Present for succeeded runs after migration 050; null otherwise.
5780
+ createdAt:
5781
+ type: string
5782
+ format: date-time
5783
+ finishedAt:
5784
+ type: string
5785
+ format: date-time
5786
+ nullable: true
5787
+
5788
+ ReadinessRepoRunListDto:
5789
+ type: object
5790
+ required: [items, limit, nextCursor]
5791
+ properties:
5792
+ items:
5793
+ type: array
5794
+ items:
5795
+ $ref: "#/components/schemas/ReadinessRepoRunHistoryItemDto"
5796
+ limit:
5797
+ type: integer
5798
+ minimum: 1
5799
+ maximum: 100
5800
+ nextCursor:
5801
+ type: string
5802
+ nullable: true
5803
+ description: Pass as `cursor` query param to fetch the next page; null when no more rows.
5804
+
5805
+ ReadinessScoreHistoryPointDto:
5806
+ type: object
5807
+ required: [finishedAt, overallScore]
5808
+ properties:
5809
+ finishedAt:
5810
+ type: string
5811
+ format: date-time
5812
+ overallScore:
5813
+ type: integer
5814
+ minimum: 0
5815
+ maximum: 100
5816
+
5817
+ ReadinessRepoScoreHistoryDto:
5818
+ type: object
5819
+ required: [repoId, repoName, connectedAt, points]
5820
+ properties:
5821
+ repoId:
5822
+ type: string
5823
+ format: uuid
5824
+ repoName:
5825
+ type: string
5826
+ maxLength: 256
5827
+ connectedAt:
5828
+ type: string
5829
+ format: date-time
5830
+ description: When the repository was first materialized in the workspace (GitHub connect).
5831
+ points:
5832
+ type: array
5833
+ items:
5834
+ $ref: "#/components/schemas/ReadinessScoreHistoryPointDto"
5835
+
5836
+ WorkspaceReadinessScoreHistoryDto:
5837
+ type: object
5838
+ required: [workspaceId, generatedAt, repos]
5839
+ properties:
5840
+ workspaceId:
5841
+ type: string
5842
+ format: uuid
5843
+ generatedAt:
5844
+ type: string
5845
+ format: date-time
5846
+ repos:
5847
+ type: array
5848
+ items:
5849
+ $ref: "#/components/schemas/ReadinessRepoScoreHistoryDto"
5850
+
5661
5851
  RepoReadinessScoreDto:
5662
5852
  type: object
5663
5853
  required:
@@ -5667,6 +5857,7 @@ components:
5667
5857
  - overallScore
5668
5858
  - dimensions
5669
5859
  - lastAnalyzed
5860
+ - connectedAt
5670
5861
  - provider
5671
5862
  - analysisStatus
5672
5863
  properties:
@@ -5691,6 +5882,10 @@ components:
5691
5882
  lastAnalyzed:
5692
5883
  type: string
5693
5884
  format: date-time
5885
+ connectedAt:
5886
+ type: string
5887
+ format: date-time
5888
+ description: First time this repository was materialized in the workspace (GitHub connect).
5694
5889
  teamId:
5695
5890
  type: string
5696
5891
  format: uuid
@@ -5704,6 +5899,16 @@ components:
5704
5899
  format: uuid
5705
5900
  nullable: true
5706
5901
  description: Present when `analysisStatus` is `queued` or `running`; use with `GET .../readiness/runs/{runId}`.
5902
+ archivedAt:
5903
+ type: string
5904
+ format: date-time
5905
+ nullable: true
5906
+ description: Set when the repo has been soft-archived (removed from installation or integration disconnected). Null means active.
5907
+ archivedReason:
5908
+ type: string
5909
+ nullable: true
5910
+ enum: [github_removed, installation_disconnected, installation_replaced, superseded, null]
5911
+ description: Why the repo was archived. Only present when `archivedAt` is set.
5707
5912
 
5708
5913
  AgenticFoundationDashboardSummaryDto:
5709
5914
  type: object
@@ -5885,8 +6090,11 @@ components:
5885
6090
  description: >
5886
6091
  Machine-readable failure code when status is `failed`. Values in
5887
6092
  `FixRetryableErrorCode` may be re-queued via POST .../readiness/fixes/{fixId}/retry.
6093
+ Values in `FixNonRetryableErrorCode` are permanent failures that require human
6094
+ intervention or configuration changes before retrying.
5888
6095
  anyOf:
5889
6096
  - $ref: "#/components/schemas/FixRetryableErrorCode"
6097
+ - $ref: "#/components/schemas/FixNonRetryableErrorCode"
5890
6098
  - type: string
5891
6099
  errorMessage:
5892
6100
  type: string
@@ -5911,6 +6119,28 @@ components:
5911
6119
  - RUNNER_INTERRUPTED
5912
6120
  description: Error codes accepted by POST .../readiness/fixes/{fixId}/retry.
5913
6121
 
6122
+ FixNonRetryableErrorCode:
6123
+ type: string
6124
+ enum:
6125
+ - POLICY_DENIED
6126
+ - CHANGE_LIMIT_EXCEEDED
6127
+ - BUILD_FAILED
6128
+ - MERGE_CONFLICT
6129
+ - AUTH_REVOKED
6130
+ - UNSUPPORTED_DIMENSION
6131
+ - DUPLICATE_ACTIVE
6132
+ - processor_error
6133
+ description: >
6134
+ Permanent failure codes that cannot be resolved by retrying the same fix.
6135
+ `POLICY_DENIED` — blocked by repo/dimension/path allowlist policy (admin must update `READINESS_FIX_*` env config).
6136
+ `CHANGE_LIMIT_EXCEEDED` — generated diff exceeded max files or lines guardrail.
6137
+ `BUILD_FAILED` — pre-PR gate command or GitHub check run failed on the fix branch.
6138
+ `MERGE_CONFLICT` — could not apply the generated fix cleanly to the target branch.
6139
+ `AUTH_REVOKED` — GitHub installation token or Cursor API key is missing or revoked.
6140
+ `UNSUPPORTED_DIMENSION` — no skill is implemented for this readiness dimension.
6141
+ `DUPLICATE_ACTIVE` — another fix is already in progress for the same issue.
6142
+ `processor_error` — unexpected processor-level failure; check batch-runner logs.
6143
+
5914
6144
  CreateFixRequestBodyDto:
5915
6145
  type: object
5916
6146
  required: [issueId, repoId]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.7.2",
3
+ "version": "2.8.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -915,6 +915,46 @@ export interface paths {
915
915
  patch?: never;
916
916
  trace?: never;
917
917
  };
918
+ "/workspaces/{workspaceId}/readiness/repos/{repoId}/runs": {
919
+ parameters: {
920
+ query?: never;
921
+ header?: never;
922
+ path?: never;
923
+ cookie?: never;
924
+ };
925
+ /**
926
+ * Paginated readiness run history for one repository
927
+ * @description Append-only scan history for charts on repo detail. Ordered by scan finish time (or `createdAt` when still in progress). Use `cursor` from the previous response for the next page. Failed and `partial_failed` runs are included with nullable `overallScore`.
928
+ */
929
+ get: operations["listReadinessRepoRuns"];
930
+ put?: never;
931
+ post?: never;
932
+ delete?: never;
933
+ options?: never;
934
+ head?: never;
935
+ patch?: never;
936
+ trace?: never;
937
+ };
938
+ "/workspaces/{workspaceId}/readiness/score-history": {
939
+ parameters: {
940
+ query?: never;
941
+ header?: never;
942
+ path?: never;
943
+ cookie?: never;
944
+ };
945
+ /**
946
+ * Workspace score time-series for all repositories
947
+ * @description Returns succeeded runs with stored `overallScore` per repo in one call (avoids N+1). Points are ordered ascending by `finishedAt` within each repo. Omit failed and `partial_failed` runs. Use `since` to bound the window; `limitPerRepo` caps points per repo (most recent first, then returned oldest-to-newest within the cap).
948
+ */
949
+ get: operations["getReadinessScoreHistory"];
950
+ put?: never;
951
+ post?: never;
952
+ delete?: never;
953
+ options?: never;
954
+ head?: never;
955
+ patch?: never;
956
+ trace?: never;
957
+ };
918
958
  "/workspaces/{workspaceId}/agentic-foundation/dashboard": {
919
959
  parameters: {
920
960
  query?: never;
@@ -2375,6 +2415,46 @@ export interface components {
2375
2415
  criteriaSummary?: components["schemas"]["ReadinessCriteriaSummaryDto"] | null;
2376
2416
  issues: components["schemas"]["ReadinessIssueDto"][];
2377
2417
  };
2418
+ ReadinessRepoRunHistoryItemDto: {
2419
+ /** Format: uuid */
2420
+ runId: string;
2421
+ status: components["schemas"]["ReadinessRunStatusDto"];
2422
+ /** @description Present for succeeded runs after migration 050; null otherwise. */
2423
+ overallScore: number | null;
2424
+ /** Format: date-time */
2425
+ createdAt: string;
2426
+ /** Format: date-time */
2427
+ finishedAt: string | null;
2428
+ };
2429
+ ReadinessRepoRunListDto: {
2430
+ items: components["schemas"]["ReadinessRepoRunHistoryItemDto"][];
2431
+ limit: number;
2432
+ /** @description Pass as `cursor` query param to fetch the next page; null when no more rows. */
2433
+ nextCursor: string | null;
2434
+ };
2435
+ ReadinessScoreHistoryPointDto: {
2436
+ /** Format: date-time */
2437
+ finishedAt: string;
2438
+ overallScore: number;
2439
+ };
2440
+ ReadinessRepoScoreHistoryDto: {
2441
+ /** Format: uuid */
2442
+ repoId: string;
2443
+ repoName: string;
2444
+ /**
2445
+ * Format: date-time
2446
+ * @description When the repository was first materialized in the workspace (GitHub connect).
2447
+ */
2448
+ connectedAt: string;
2449
+ points: components["schemas"]["ReadinessScoreHistoryPointDto"][];
2450
+ };
2451
+ WorkspaceReadinessScoreHistoryDto: {
2452
+ /** Format: uuid */
2453
+ workspaceId: string;
2454
+ /** Format: date-time */
2455
+ generatedAt: string;
2456
+ repos: components["schemas"]["ReadinessRepoScoreHistoryDto"][];
2457
+ };
2378
2458
  RepoReadinessScoreDto: {
2379
2459
  /** Format: uuid */
2380
2460
  repoId: string;
@@ -2385,6 +2465,11 @@ export interface components {
2385
2465
  dimensions: components["schemas"]["DimensionScoreDto"][];
2386
2466
  /** Format: date-time */
2387
2467
  lastAnalyzed: string;
2468
+ /**
2469
+ * Format: date-time
2470
+ * @description First time this repository was materialized in the workspace (GitHub connect).
2471
+ */
2472
+ connectedAt: string;
2388
2473
  /** Format: uuid */
2389
2474
  teamId?: string | null;
2390
2475
  provider: components["schemas"]["RepoProviderDto"];
@@ -2394,6 +2479,16 @@ export interface components {
2394
2479
  * @description Present when `analysisStatus` is `queued` or `running`; use with `GET .../readiness/runs/{runId}`.
2395
2480
  */
2396
2481
  activeRunId?: string | null;
2482
+ /**
2483
+ * Format: date-time
2484
+ * @description Set when the repo has been soft-archived (removed from installation or integration disconnected). Null means active.
2485
+ */
2486
+ archivedAt?: string | null;
2487
+ /**
2488
+ * @description Why the repo was archived. Only present when `archivedAt` is set.
2489
+ * @enum {string|null}
2490
+ */
2491
+ archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | null;
2397
2492
  };
2398
2493
  AgenticFoundationDashboardSummaryDto: {
2399
2494
  repoCount: number;
@@ -2460,8 +2555,8 @@ export interface components {
2460
2555
  status: "queued" | "generating" | "pr-created" | "merged" | "failed";
2461
2556
  prUrl?: string;
2462
2557
  prNumber?: number;
2463
- /** @description Machine-readable failure code when status is `failed`. Values in `FixRetryableErrorCode` may be re-queued via POST .../readiness/fixes/{fixId}/retry. */
2464
- errorCode?: components["schemas"]["FixRetryableErrorCode"] | string;
2558
+ /** @description Machine-readable failure code when status is `failed`. Values in `FixRetryableErrorCode` may be re-queued via POST .../readiness/fixes/{fixId}/retry. Values in `FixNonRetryableErrorCode` are permanent failures that require human intervention or configuration changes before retrying. */
2559
+ errorCode?: components["schemas"]["FixRetryableErrorCode"] | components["schemas"]["FixNonRetryableErrorCode"] | string;
2465
2560
  /** @description Human-readable failure summary. Present when status is failed. */
2466
2561
  errorMessage?: string | null;
2467
2562
  /** @description Structured failure context for UI rendering (e.g. file path, provider status). Never contains secrets. */
@@ -2476,6 +2571,11 @@ export interface components {
2476
2571
  * @enum {string}
2477
2572
  */
2478
2573
  FixRetryableErrorCode: "PROVIDER_TIMEOUT" | "RATE_LIMITED" | "TRANSIENT_NETWORK" | "RUNNER_INTERRUPTED";
2574
+ /**
2575
+ * @description Permanent failure codes that cannot be resolved by retrying the same fix. `POLICY_DENIED` — blocked by repo/dimension/path allowlist policy (admin must update `READINESS_FIX_*` env config). `CHANGE_LIMIT_EXCEEDED` — generated diff exceeded max files or lines guardrail. `BUILD_FAILED` — pre-PR gate command or GitHub check run failed on the fix branch. `MERGE_CONFLICT` — could not apply the generated fix cleanly to the target branch. `AUTH_REVOKED` — GitHub installation token or Cursor API key is missing or revoked. `UNSUPPORTED_DIMENSION` — no skill is implemented for this readiness dimension. `DUPLICATE_ACTIVE` — another fix is already in progress for the same issue. `processor_error` — unexpected processor-level failure; check batch-runner logs.
2576
+ * @enum {string}
2577
+ */
2578
+ FixNonRetryableErrorCode: "POLICY_DENIED" | "CHANGE_LIMIT_EXCEEDED" | "BUILD_FAILED" | "MERGE_CONFLICT" | "AUTH_REVOKED" | "UNSUPPORTED_DIMENSION" | "DUPLICATE_ACTIVE" | "processor_error";
2479
2579
  CreateFixRequestBodyDto: {
2480
2580
  /**
2481
2581
  * Format: uuid
@@ -2906,6 +3006,11 @@ export type ReadinessRunSummaryDto = components['schemas']['ReadinessRunSummaryD
2906
3006
  export type ReadinessCriteriaSummaryDto = components['schemas']['ReadinessCriteriaSummaryDto'];
2907
3007
  export type ReadinessIssueDto = components['schemas']['ReadinessIssueDto'];
2908
3008
  export type DimensionScoreDto = components['schemas']['DimensionScoreDto'];
3009
+ export type ReadinessRepoRunHistoryItemDto = components['schemas']['ReadinessRepoRunHistoryItemDto'];
3010
+ export type ReadinessRepoRunListDto = components['schemas']['ReadinessRepoRunListDto'];
3011
+ export type ReadinessScoreHistoryPointDto = components['schemas']['ReadinessScoreHistoryPointDto'];
3012
+ export type ReadinessRepoScoreHistoryDto = components['schemas']['ReadinessRepoScoreHistoryDto'];
3013
+ export type WorkspaceReadinessScoreHistoryDto = components['schemas']['WorkspaceReadinessScoreHistoryDto'];
2909
3014
  export type RepoReadinessScoreDto = components['schemas']['RepoReadinessScoreDto'];
2910
3015
  export type AgenticFoundationDashboardSummaryDto = components['schemas']['AgenticFoundationDashboardSummaryDto'];
2911
3016
  export type PageMetaDto = components['schemas']['PageMetaDto'];
@@ -2917,6 +3022,7 @@ export type GithubInstalledRepoListDto = components['schemas']['GithubInstalledR
2917
3022
  export type AgenticFoundationDashboardDto = components['schemas']['AgenticFoundationDashboardDto'];
2918
3023
  export type FixRequestDto = components['schemas']['FixRequestDto'];
2919
3024
  export type FixRetryableErrorCode = components['schemas']['FixRetryableErrorCode'];
3025
+ export type FixNonRetryableErrorCode = components['schemas']['FixNonRetryableErrorCode'];
2920
3026
  export type CreateFixRequestBodyDto = components['schemas']['CreateFixRequestBodyDto'];
2921
3027
  export type PhaseRoleDto = components['schemas']['PhaseRoleDto'];
2922
3028
  export type SquadMemberDto = components['schemas']['SquadMemberDto'];
@@ -5282,6 +5388,100 @@ export interface operations {
5282
5388
  };
5283
5389
  };
5284
5390
  };
5391
+ listReadinessRepoRuns: {
5392
+ parameters: {
5393
+ query?: {
5394
+ limit?: number;
5395
+ order?: "asc" | "desc";
5396
+ /** @description Opaque cursor from a prior response `nextCursor` field. */
5397
+ cursor?: string;
5398
+ };
5399
+ header?: never;
5400
+ path: {
5401
+ workspaceId: components["parameters"]["WorkspaceId"];
5402
+ repoId: components["parameters"]["RepoId"];
5403
+ };
5404
+ cookie?: never;
5405
+ };
5406
+ requestBody?: never;
5407
+ responses: {
5408
+ /** @description Run history page */
5409
+ 200: {
5410
+ headers: {
5411
+ [name: string]: unknown;
5412
+ };
5413
+ content: {
5414
+ "application/json": components["schemas"]["ReadinessRepoRunListDto"];
5415
+ };
5416
+ };
5417
+ /** @description Invalid pagination query */
5418
+ 400: {
5419
+ headers: {
5420
+ [name: string]: unknown;
5421
+ };
5422
+ content: {
5423
+ "application/json": components["schemas"]["ErrorMessageDto"];
5424
+ };
5425
+ };
5426
+ 401: components["responses"]["Unauthorized"];
5427
+ 403: components["responses"]["Forbidden"];
5428
+ /** @description Workspace or repository not found */
5429
+ 404: {
5430
+ headers: {
5431
+ [name: string]: unknown;
5432
+ };
5433
+ content: {
5434
+ "application/json": components["schemas"]["ErrorMessageDto"];
5435
+ };
5436
+ };
5437
+ };
5438
+ };
5439
+ getReadinessScoreHistory: {
5440
+ parameters: {
5441
+ query?: {
5442
+ /** @description ISO-8601 lower bound on `finishedAt` (inclusive). */
5443
+ since?: string;
5444
+ limitPerRepo?: number;
5445
+ };
5446
+ header?: never;
5447
+ path: {
5448
+ workspaceId: components["parameters"]["WorkspaceId"];
5449
+ };
5450
+ cookie?: never;
5451
+ };
5452
+ requestBody?: never;
5453
+ responses: {
5454
+ /** @description Score history grouped by repository */
5455
+ 200: {
5456
+ headers: {
5457
+ [name: string]: unknown;
5458
+ };
5459
+ content: {
5460
+ "application/json": components["schemas"]["WorkspaceReadinessScoreHistoryDto"];
5461
+ };
5462
+ };
5463
+ /** @description Invalid query */
5464
+ 400: {
5465
+ headers: {
5466
+ [name: string]: unknown;
5467
+ };
5468
+ content: {
5469
+ "application/json": components["schemas"]["ErrorMessageDto"];
5470
+ };
5471
+ };
5472
+ 401: components["responses"]["Unauthorized"];
5473
+ 403: components["responses"]["Forbidden"];
5474
+ /** @description Workspace does not exist */
5475
+ 404: {
5476
+ headers: {
5477
+ [name: string]: unknown;
5478
+ };
5479
+ content: {
5480
+ "application/json": components["schemas"]["ErrorMessageDto"];
5481
+ };
5482
+ };
5483
+ };
5484
+ };
5285
5485
  getAgenticFoundationDashboard: {
5286
5486
  parameters: {
5287
5487
  query?: never;