@thinkai/tai-api-contract 2.157.0 → 2.159.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.
package/openapi/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: ThinkAI API
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.159.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}/...`.
|
|
@@ -6959,6 +6959,15 @@ paths:
|
|
|
6959
6959
|
fixed: 0
|
|
6960
6960
|
verificationGapCount: 0
|
|
6961
6961
|
verificationGaps: []
|
|
6962
|
+
blockedRepoCount: 0
|
|
6963
|
+
topBlockingRuleTitle: null
|
|
6964
|
+
topBlockingRuleRepoCount: 0
|
|
6965
|
+
fixProof:
|
|
6966
|
+
windowDays: 30
|
|
6967
|
+
mergeRatePercent: null
|
|
6968
|
+
medianDaysToMerge: null
|
|
6969
|
+
clearedCount: 0
|
|
6970
|
+
rows: []
|
|
6962
6971
|
dimensionAggregates: []
|
|
6963
6972
|
fixStatusSummary:
|
|
6964
6973
|
queued: 0
|
|
@@ -11515,7 +11524,7 @@ components:
|
|
|
11515
11524
|
description: Allowlisted repository sort field.
|
|
11516
11525
|
schema:
|
|
11517
11526
|
type: string
|
|
11518
|
-
enum: [repoName, overallScore, lastAnalyzed, language]
|
|
11527
|
+
enum: [repoName, overallScore, lastAnalyzed, language, blockingRule]
|
|
11519
11528
|
default: overallScore
|
|
11520
11529
|
CodeInsightsRepoSort:
|
|
11521
11530
|
name: sort
|
|
@@ -18357,19 +18366,25 @@ components:
|
|
|
18357
18366
|
type: string
|
|
18358
18367
|
format: date-time
|
|
18359
18368
|
nullable: true
|
|
18360
|
-
description: Set when the repo has been soft-archived (removed from installation or integration disconnected). Null means active.
|
|
18369
|
+
description: Set when the repo has been soft-archived (removed from installation, archived on GitHub, or integration disconnected). Null means active.
|
|
18361
18370
|
archivedReason:
|
|
18362
18371
|
type: string
|
|
18363
18372
|
nullable: true
|
|
18364
18373
|
enum:
|
|
18365
18374
|
[
|
|
18375
|
+
github_archived,
|
|
18366
18376
|
github_removed,
|
|
18367
18377
|
installation_disconnected,
|
|
18368
18378
|
installation_replaced,
|
|
18369
18379
|
superseded,
|
|
18370
18380
|
user_removed,
|
|
18371
18381
|
]
|
|
18372
|
-
description:
|
|
18382
|
+
description: >
|
|
18383
|
+
Why the repo was archived. `github_archived` means the repo is still granted by the
|
|
18384
|
+
GitHub installation but GitHub reports `archived === true` (default sync excludes it).
|
|
18385
|
+
`github_removed` means the slug is no longer in the installation listing.
|
|
18386
|
+
`user_removed` means excluded from Agentic Foundation scope only. Only present when
|
|
18387
|
+
`archivedAt` is set.
|
|
18373
18388
|
eligibilityStatus:
|
|
18374
18389
|
type: string
|
|
18375
18390
|
enum: [eligible, ineligible]
|
|
@@ -18471,6 +18486,15 @@ components:
|
|
|
18471
18486
|
scores; live CI health stays in SDLC Insights.
|
|
18472
18487
|
items:
|
|
18473
18488
|
$ref: "#/components/schemas/ScanImprovementDto"
|
|
18489
|
+
blockingRule:
|
|
18490
|
+
type: object
|
|
18491
|
+
nullable: true
|
|
18492
|
+
allOf:
|
|
18493
|
+
- $ref: "#/components/schemas/ReadinessBlockingRuleDto"
|
|
18494
|
+
description: >
|
|
18495
|
+
The one open gap or partial criterion on the latest succeeded scan that is not
|
|
18496
|
+
already fixed. Null when the repo is not blocked. Severity ranks first, then
|
|
18497
|
+
dimension weight, then rubric id.
|
|
18474
18498
|
|
|
18475
18499
|
LinkedRolePendingDto:
|
|
18476
18500
|
type: object
|
|
@@ -18576,12 +18600,14 @@ components:
|
|
|
18576
18600
|
nullable: true
|
|
18577
18601
|
enum:
|
|
18578
18602
|
[
|
|
18603
|
+
github_archived,
|
|
18579
18604
|
github_removed,
|
|
18580
18605
|
installation_disconnected,
|
|
18581
18606
|
installation_replaced,
|
|
18582
18607
|
superseded,
|
|
18583
18608
|
user_removed,
|
|
18584
18609
|
]
|
|
18610
|
+
description: See RepoReadinessScoreDto.archivedReason.
|
|
18585
18611
|
eligibilityStatus:
|
|
18586
18612
|
type: string
|
|
18587
18613
|
enum: [eligible, ineligible]
|
|
@@ -18649,10 +18675,27 @@ components:
|
|
|
18649
18675
|
description: See RepoReadinessScoreDto.scanImprovements.
|
|
18650
18676
|
items:
|
|
18651
18677
|
$ref: "#/components/schemas/ScanImprovementDto"
|
|
18678
|
+
blockingRule:
|
|
18679
|
+
type: object
|
|
18680
|
+
nullable: true
|
|
18681
|
+
allOf:
|
|
18682
|
+
- $ref: "#/components/schemas/ReadinessBlockingRuleDto"
|
|
18683
|
+
description: See RepoReadinessScoreDto.blockingRule.
|
|
18652
18684
|
|
|
18653
18685
|
AgenticFoundationDashboardSummaryDto:
|
|
18654
18686
|
type: object
|
|
18655
|
-
required:
|
|
18687
|
+
required:
|
|
18688
|
+
[
|
|
18689
|
+
repoCount,
|
|
18690
|
+
averageOverallScore,
|
|
18691
|
+
issueCount,
|
|
18692
|
+
criticalIssueCount,
|
|
18693
|
+
issuesByFixStatus,
|
|
18694
|
+
blockedRepoCount,
|
|
18695
|
+
topBlockingRuleTitle,
|
|
18696
|
+
topBlockingRuleRepoCount,
|
|
18697
|
+
fixProof,
|
|
18698
|
+
]
|
|
18656
18699
|
properties:
|
|
18657
18700
|
repoCount:
|
|
18658
18701
|
type: integer
|
|
@@ -18704,6 +18747,91 @@ components:
|
|
|
18704
18747
|
both gaps appears twice. Does not change averageOverallScore.
|
|
18705
18748
|
items:
|
|
18706
18749
|
$ref: "#/components/schemas/AgenticFoundationVerificationGapDto"
|
|
18750
|
+
blockedRepoCount:
|
|
18751
|
+
type: integer
|
|
18752
|
+
minimum: 0
|
|
18753
|
+
description: >
|
|
18754
|
+
Non-archived repos whose latest succeeded scan still has a gap or partial
|
|
18755
|
+
criterion that is not fixed. A repo with no open gap is not blocked.
|
|
18756
|
+
topBlockingRuleTitle:
|
|
18757
|
+
type: string
|
|
18758
|
+
nullable: true
|
|
18759
|
+
description: Rule title that blocks the most repos. Null when blockedRepoCount is 0.
|
|
18760
|
+
topBlockingRuleRepoCount:
|
|
18761
|
+
type: integer
|
|
18762
|
+
minimum: 0
|
|
18763
|
+
description: How many blocked repos share topBlockingRuleTitle.
|
|
18764
|
+
fixProof:
|
|
18765
|
+
$ref: "#/components/schemas/AgenticFoundationFixProofDto"
|
|
18766
|
+
|
|
18767
|
+
ReadinessBlockingRuleDto:
|
|
18768
|
+
type: object
|
|
18769
|
+
additionalProperties: false
|
|
18770
|
+
required: [rubricId, title, severity]
|
|
18771
|
+
properties:
|
|
18772
|
+
rubricId:
|
|
18773
|
+
type: string
|
|
18774
|
+
title:
|
|
18775
|
+
type: string
|
|
18776
|
+
severity:
|
|
18777
|
+
type: string
|
|
18778
|
+
enum: [critical, high, medium, low]
|
|
18779
|
+
|
|
18780
|
+
AgenticFoundationFixProofDto:
|
|
18781
|
+
type: object
|
|
18782
|
+
additionalProperties: false
|
|
18783
|
+
required: [windowDays, mergeRatePercent, medianDaysToMerge, clearedCount, rows]
|
|
18784
|
+
properties:
|
|
18785
|
+
windowDays:
|
|
18786
|
+
type: integer
|
|
18787
|
+
minimum: 1
|
|
18788
|
+
mergeRatePercent:
|
|
18789
|
+
type: integer
|
|
18790
|
+
minimum: 0
|
|
18791
|
+
maximum: 100
|
|
18792
|
+
nullable: true
|
|
18793
|
+
description: >
|
|
18794
|
+
Rounded percent of terminal fixes in the window that merged (merged / merged + failed).
|
|
18795
|
+
Null when there is no terminal fix.
|
|
18796
|
+
medianDaysToMerge:
|
|
18797
|
+
type: number
|
|
18798
|
+
nullable: true
|
|
18799
|
+
description: Median days from created_at to merge. Null when nothing merged in the window.
|
|
18800
|
+
clearedCount:
|
|
18801
|
+
type: integer
|
|
18802
|
+
minimum: 0
|
|
18803
|
+
description: Merged fixes in the window whose next scan marked the criterion met.
|
|
18804
|
+
rows:
|
|
18805
|
+
type: array
|
|
18806
|
+
maxItems: 10
|
|
18807
|
+
items:
|
|
18808
|
+
$ref: "#/components/schemas/AgenticFoundationFixProofRowDto"
|
|
18809
|
+
|
|
18810
|
+
AgenticFoundationFixProofRowDto:
|
|
18811
|
+
type: object
|
|
18812
|
+
additionalProperties: false
|
|
18813
|
+
required: [repoName, ruleTitle, scoreBefore, scoreAfter, cleared]
|
|
18814
|
+
properties:
|
|
18815
|
+
repoName:
|
|
18816
|
+
type: string
|
|
18817
|
+
ruleTitle:
|
|
18818
|
+
type: string
|
|
18819
|
+
scoreBefore:
|
|
18820
|
+
type: integer
|
|
18821
|
+
minimum: 0
|
|
18822
|
+
maximum: 100
|
|
18823
|
+
nullable: true
|
|
18824
|
+
scoreAfter:
|
|
18825
|
+
type: integer
|
|
18826
|
+
minimum: 0
|
|
18827
|
+
maximum: 100
|
|
18828
|
+
nullable: true
|
|
18829
|
+
cleared:
|
|
18830
|
+
type: boolean
|
|
18831
|
+
nullable: true
|
|
18832
|
+
description: >
|
|
18833
|
+
True when the first succeeded scan after the merge marked the criterion met.
|
|
18834
|
+
Null when that scan has not run yet.
|
|
18707
18835
|
|
|
18708
18836
|
AgenticFoundationVerificationGapDto:
|
|
18709
18837
|
type: object
|
package/package.json
CHANGED
package/src/generated/openapi.ts
CHANGED
|
@@ -7790,14 +7790,14 @@ export interface components {
|
|
|
7790
7790
|
lastRunErrorDetail?: string | null;
|
|
7791
7791
|
/**
|
|
7792
7792
|
* Format: date-time
|
|
7793
|
-
* @description Set when the repo has been soft-archived (removed from installation or integration disconnected). Null means active.
|
|
7793
|
+
* @description Set when the repo has been soft-archived (removed from installation, archived on GitHub, or integration disconnected). Null means active.
|
|
7794
7794
|
*/
|
|
7795
7795
|
archivedAt?: string | null;
|
|
7796
7796
|
/**
|
|
7797
|
-
* @description Why the repo was archived. `user_removed` means excluded from Agentic Foundation scope only. Only present when `archivedAt` is set.
|
|
7797
|
+
* @description Why the repo was archived. `github_archived` means the repo is still granted by the GitHub installation but GitHub reports `archived === true` (default sync excludes it). `github_removed` means the slug is no longer in the installation listing. `user_removed` means excluded from Agentic Foundation scope only. Only present when `archivedAt` is set.
|
|
7798
7798
|
* @enum {string|null}
|
|
7799
7799
|
*/
|
|
7800
|
-
archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
|
|
7800
|
+
archivedReason?: "github_archived" | "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
|
|
7801
7801
|
/**
|
|
7802
7802
|
* @description Whether the repo can be analyzed (#44/#729). Language support no longer makes a repo `ineligible` — a missing v1-supported stack is surfaced via `warnings` and the repo stays analyzable. It becomes `ineligible` when the most recent scan hit a hard size/file-count limit (e.g. code-size or file-count exceeded): the repo is then restricted here too so this surface matches the GitHub connect list's size gate after the scan. Null until the first sync/scan computes it.
|
|
7803
7803
|
* @enum {string|null}
|
|
@@ -7835,6 +7835,8 @@ export interface components {
|
|
|
7835
7835
|
linkedRoleAssessment?: components["schemas"]["LinkedRoleAssessmentDto"] | null;
|
|
7836
7836
|
/** @description Repo-level "Improve this scan" recommendations for Agentic Foundation CI setup (at most three). Omitted when the scan emitted none. Does not change criterion scores; live CI health stays in SDLC Insights. */
|
|
7837
7837
|
scanImprovements?: components["schemas"]["ScanImprovementDto"][];
|
|
7838
|
+
/** @description The one open gap or partial criterion on the latest succeeded scan that is not already fixed. Null when the repo is not blocked. Severity ranks first, then dimension weight, then rubric id. */
|
|
7839
|
+
blockingRule?: components["schemas"]["ReadinessBlockingRuleDto"] | null;
|
|
7838
7840
|
};
|
|
7839
7841
|
LinkedRolePendingDto: {
|
|
7840
7842
|
/** @description Topology role key, e.g. terraform | gitops | ci_templates | api_contracts. */
|
|
@@ -7880,8 +7882,11 @@ export interface components {
|
|
|
7880
7882
|
lastRunErrorDetail?: string | null;
|
|
7881
7883
|
/** Format: date-time */
|
|
7882
7884
|
archivedAt?: string | null;
|
|
7883
|
-
/**
|
|
7884
|
-
|
|
7885
|
+
/**
|
|
7886
|
+
* @description See RepoReadinessScoreDto.archivedReason.
|
|
7887
|
+
* @enum {string|null}
|
|
7888
|
+
*/
|
|
7889
|
+
archivedReason?: "github_archived" | "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
|
|
7885
7890
|
/**
|
|
7886
7891
|
* @description See RepoReadinessScoreDto.eligibilityStatus. Language support is advisory (#729) and surfaced via `warnings`.
|
|
7887
7892
|
* @enum {string|null}
|
|
@@ -7915,6 +7920,8 @@ export interface components {
|
|
|
7915
7920
|
linkedRoleAssessment?: components["schemas"]["LinkedRoleAssessmentDto"] | null;
|
|
7916
7921
|
/** @description See RepoReadinessScoreDto.scanImprovements. */
|
|
7917
7922
|
scanImprovements?: components["schemas"]["ScanImprovementDto"][];
|
|
7923
|
+
/** @description See RepoReadinessScoreDto.blockingRule. */
|
|
7924
|
+
blockingRule?: components["schemas"]["ReadinessBlockingRuleDto"] | null;
|
|
7918
7925
|
};
|
|
7919
7926
|
AgenticFoundationDashboardSummaryDto: {
|
|
7920
7927
|
repoCount: number;
|
|
@@ -7936,6 +7943,37 @@ export interface components {
|
|
|
7936
7943
|
verificationGapCount?: number;
|
|
7937
7944
|
/** @description Up to 12 repo and reason pairs for verificationGapCount. A repo with both gaps appears twice. Does not change averageOverallScore. */
|
|
7938
7945
|
verificationGaps?: components["schemas"]["AgenticFoundationVerificationGapDto"][];
|
|
7946
|
+
/** @description Non-archived repos whose latest succeeded scan still has a gap or partial criterion that is not fixed. A repo with no open gap is not blocked. */
|
|
7947
|
+
blockedRepoCount: number;
|
|
7948
|
+
/** @description Rule title that blocks the most repos. Null when blockedRepoCount is 0. */
|
|
7949
|
+
topBlockingRuleTitle: string | null;
|
|
7950
|
+
/** @description How many blocked repos share topBlockingRuleTitle. */
|
|
7951
|
+
topBlockingRuleRepoCount: number;
|
|
7952
|
+
fixProof: components["schemas"]["AgenticFoundationFixProofDto"];
|
|
7953
|
+
};
|
|
7954
|
+
ReadinessBlockingRuleDto: {
|
|
7955
|
+
rubricId: string;
|
|
7956
|
+
title: string;
|
|
7957
|
+
/** @enum {string} */
|
|
7958
|
+
severity: "critical" | "high" | "medium" | "low";
|
|
7959
|
+
};
|
|
7960
|
+
AgenticFoundationFixProofDto: {
|
|
7961
|
+
windowDays: number;
|
|
7962
|
+
/** @description Rounded percent of terminal fixes in the window that merged (merged / merged + failed). Null when there is no terminal fix. */
|
|
7963
|
+
mergeRatePercent: number | null;
|
|
7964
|
+
/** @description Median days from created_at to merge. Null when nothing merged in the window. */
|
|
7965
|
+
medianDaysToMerge: number | null;
|
|
7966
|
+
/** @description Merged fixes in the window whose next scan marked the criterion met. */
|
|
7967
|
+
clearedCount: number;
|
|
7968
|
+
rows: components["schemas"]["AgenticFoundationFixProofRowDto"][];
|
|
7969
|
+
};
|
|
7970
|
+
AgenticFoundationFixProofRowDto: {
|
|
7971
|
+
repoName: string;
|
|
7972
|
+
ruleTitle: string;
|
|
7973
|
+
scoreBefore: number | null;
|
|
7974
|
+
scoreAfter: number | null;
|
|
7975
|
+
/** @description True when the first succeeded scan after the merge marked the criterion met. Null when that scan has not run yet. */
|
|
7976
|
+
cleared: boolean | null;
|
|
7939
7977
|
};
|
|
7940
7978
|
AgenticFoundationVerificationGapDto: {
|
|
7941
7979
|
repoName: string;
|
|
@@ -10801,7 +10839,7 @@ export interface components {
|
|
|
10801
10839
|
/** @description Sort direction. */
|
|
10802
10840
|
PaginationOrder: "asc" | "desc";
|
|
10803
10841
|
/** @description Allowlisted repository sort field. */
|
|
10804
|
-
ReadinessRepoSort: "repoName" | "overallScore" | "lastAnalyzed" | "language";
|
|
10842
|
+
ReadinessRepoSort: "repoName" | "overallScore" | "lastAnalyzed" | "language" | "blockingRule";
|
|
10805
10843
|
/** @description Allowlisted Code Insights repo sort field. */
|
|
10806
10844
|
CodeInsightsRepoSort: "repoName" | "locTotal" | "ccAvg" | "dupPct" | "lastMeasuredAt";
|
|
10807
10845
|
/** @description Case-insensitive substring filter on repo name / provider slug. */
|
|
@@ -11112,6 +11150,9 @@ export type LinkedRolePendingDto = components['schemas']['LinkedRolePendingDto']
|
|
|
11112
11150
|
export type LinkedRoleAssessmentDto = components['schemas']['LinkedRoleAssessmentDto'];
|
|
11113
11151
|
export type RepoReadinessScoreDetailDto = components['schemas']['RepoReadinessScoreDetailDto'];
|
|
11114
11152
|
export type AgenticFoundationDashboardSummaryDto = components['schemas']['AgenticFoundationDashboardSummaryDto'];
|
|
11153
|
+
export type ReadinessBlockingRuleDto = components['schemas']['ReadinessBlockingRuleDto'];
|
|
11154
|
+
export type AgenticFoundationFixProofDto = components['schemas']['AgenticFoundationFixProofDto'];
|
|
11155
|
+
export type AgenticFoundationFixProofRowDto = components['schemas']['AgenticFoundationFixProofRowDto'];
|
|
11115
11156
|
export type AgenticFoundationVerificationGapDto = components['schemas']['AgenticFoundationVerificationGapDto'];
|
|
11116
11157
|
export type PageMetaDto = components['schemas']['PageMetaDto'];
|
|
11117
11158
|
export type ReadinessEligibilityLimitsDto = components['schemas']['ReadinessEligibilityLimitsDto'];
|