@thinkai/tai-api-contract 2.125.0 → 2.127.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/dist/generated/openapi.d.ts +644 -0
- package/dist/generated/openapi.d.ts.map +1 -1
- package/openapi/openapi.yaml +837 -1
- package/package.json +2 -3
- package/src/generated/openapi.ts +644 -0
package/src/generated/openapi.ts
CHANGED
|
@@ -1394,6 +1394,46 @@ export interface paths {
|
|
|
1394
1394
|
patch?: never;
|
|
1395
1395
|
trace?: never;
|
|
1396
1396
|
};
|
|
1397
|
+
"/workspaces/{workspaceId}/insights/test-pyramid/summary": {
|
|
1398
|
+
parameters: {
|
|
1399
|
+
query?: never;
|
|
1400
|
+
header?: never;
|
|
1401
|
+
path?: never;
|
|
1402
|
+
cookie?: never;
|
|
1403
|
+
};
|
|
1404
|
+
/**
|
|
1405
|
+
* Test pyramid assessment — workspace summary
|
|
1406
|
+
* @description Org-level Test pyramid assessment for `/insights/test-pyramid`. Aggregates each active repo's **latest** readiness-scan test-pyramid snapshot. Layer **presence is count-based** (`fileCount > 0`); CI/dependency-only AF `present` flags are ignored. Shape uses fixed advisory targets (base ~70% unit, middle ~20% integration+contract+acceptance/BDD, top ~10% E2E) and returns `insufficient_data` when total classified test files < 10. Does not change Agentic Foundation `/readiness/test-pyramid*` responses.
|
|
1407
|
+
*/
|
|
1408
|
+
get: operations["getInsightsTestPyramidSummary"];
|
|
1409
|
+
put?: never;
|
|
1410
|
+
post?: never;
|
|
1411
|
+
delete?: never;
|
|
1412
|
+
options?: never;
|
|
1413
|
+
head?: never;
|
|
1414
|
+
patch?: never;
|
|
1415
|
+
trace?: never;
|
|
1416
|
+
};
|
|
1417
|
+
"/workspaces/{workspaceId}/insights/test-pyramid/repos": {
|
|
1418
|
+
parameters: {
|
|
1419
|
+
query?: never;
|
|
1420
|
+
header?: never;
|
|
1421
|
+
path?: never;
|
|
1422
|
+
cookie?: never;
|
|
1423
|
+
};
|
|
1424
|
+
/**
|
|
1425
|
+
* Test pyramid assessment — per-repo list (paginated)
|
|
1426
|
+
* @description Page of repos with latest classified test-file counts, count-based presence, presence maturity, and shape assessment. Use `gapsByLayer` on the summary endpoint (or filter this list via layerPresent) to answer “who lacks layer X?”. No v1 repo-detail Insights route — link repo names to AF readiness inventory.
|
|
1427
|
+
*/
|
|
1428
|
+
get: operations["listInsightsTestPyramidRepos"];
|
|
1429
|
+
put?: never;
|
|
1430
|
+
post?: never;
|
|
1431
|
+
delete?: never;
|
|
1432
|
+
options?: never;
|
|
1433
|
+
head?: never;
|
|
1434
|
+
patch?: never;
|
|
1435
|
+
trace?: never;
|
|
1436
|
+
};
|
|
1397
1437
|
"/workspaces/{workspaceId}/integrations/ai-tool/{provider}/members": {
|
|
1398
1438
|
parameters: {
|
|
1399
1439
|
query?: never;
|
|
@@ -2376,6 +2416,66 @@ export interface paths {
|
|
|
2376
2416
|
patch?: never;
|
|
2377
2417
|
trace?: never;
|
|
2378
2418
|
};
|
|
2419
|
+
"/workspaces/{workspaceId}/readiness/test-pyramid": {
|
|
2420
|
+
parameters: {
|
|
2421
|
+
query?: never;
|
|
2422
|
+
header?: never;
|
|
2423
|
+
path?: never;
|
|
2424
|
+
cookie?: never;
|
|
2425
|
+
};
|
|
2426
|
+
/**
|
|
2427
|
+
* Latest test-pyramid report and progress per repository
|
|
2428
|
+
* @description Returns the latest test inventory for every repository with a pyramid snapshot, deltas from the previous and baseline scans, and workspace layer coverage. Repositories whose historical runs predate pyramid snapshots are omitted.
|
|
2429
|
+
*/
|
|
2430
|
+
get: operations["getReadinessTestPyramid"];
|
|
2431
|
+
put?: never;
|
|
2432
|
+
post?: never;
|
|
2433
|
+
delete?: never;
|
|
2434
|
+
options?: never;
|
|
2435
|
+
head?: never;
|
|
2436
|
+
patch?: never;
|
|
2437
|
+
trace?: never;
|
|
2438
|
+
};
|
|
2439
|
+
"/workspaces/{workspaceId}/readiness/test-pyramid/history": {
|
|
2440
|
+
parameters: {
|
|
2441
|
+
query?: never;
|
|
2442
|
+
header?: never;
|
|
2443
|
+
path?: never;
|
|
2444
|
+
cookie?: never;
|
|
2445
|
+
};
|
|
2446
|
+
/**
|
|
2447
|
+
* Historical test-pyramid snapshots per repository
|
|
2448
|
+
* @description Returns succeeded readiness runs containing test-pyramid snapshots, ordered oldest to newest per repository. Older runs without snapshots are omitted, not treated as gaps.
|
|
2449
|
+
*/
|
|
2450
|
+
get: operations["getReadinessTestPyramidHistory"];
|
|
2451
|
+
put?: never;
|
|
2452
|
+
post?: never;
|
|
2453
|
+
delete?: never;
|
|
2454
|
+
options?: never;
|
|
2455
|
+
head?: never;
|
|
2456
|
+
patch?: never;
|
|
2457
|
+
trace?: never;
|
|
2458
|
+
};
|
|
2459
|
+
"/workspaces/{workspaceId}/readiness/test-pyramid/progress": {
|
|
2460
|
+
parameters: {
|
|
2461
|
+
query?: never;
|
|
2462
|
+
header?: never;
|
|
2463
|
+
path?: never;
|
|
2464
|
+
cookie?: never;
|
|
2465
|
+
};
|
|
2466
|
+
/**
|
|
2467
|
+
* Test-pyramid code progress from successive scans
|
|
2468
|
+
* @description Compares each repository's latest pyramid snapshot with its previous and baseline snapshots. Reports layer adoption/removal, file-count and Tests & QA score deltas, criterion changes, and current workspace coverage.
|
|
2469
|
+
*/
|
|
2470
|
+
get: operations["getReadinessTestPyramidProgress"];
|
|
2471
|
+
put?: never;
|
|
2472
|
+
post?: never;
|
|
2473
|
+
delete?: never;
|
|
2474
|
+
options?: never;
|
|
2475
|
+
head?: never;
|
|
2476
|
+
patch?: never;
|
|
2477
|
+
trace?: never;
|
|
2478
|
+
};
|
|
2379
2479
|
"/workspaces/{workspaceId}/readiness/score-history": {
|
|
2380
2480
|
parameters: {
|
|
2381
2481
|
query?: never;
|
|
@@ -6795,12 +6895,176 @@ export interface components {
|
|
|
6795
6895
|
/** @description Dimension score as a percentage (0–100) for this scan run. */
|
|
6796
6896
|
scorePercent: number;
|
|
6797
6897
|
};
|
|
6898
|
+
TestPyramidLayerSnapshotDto: {
|
|
6899
|
+
present: boolean;
|
|
6900
|
+
/** @description False when the repository archetype makes this layer not applicable. */
|
|
6901
|
+
applicable: boolean;
|
|
6902
|
+
/** @enum {string} */
|
|
6903
|
+
confidence: "high" | "medium" | "low";
|
|
6904
|
+
fileCount: number;
|
|
6905
|
+
frameworks: string[];
|
|
6906
|
+
/** @description Capped relative file paths or script names supporting the classification. */
|
|
6907
|
+
evidence: string[];
|
|
6908
|
+
lineCoverage?: components["schemas"]["TestPyramidLineCoverageDto"];
|
|
6909
|
+
};
|
|
6910
|
+
TestPyramidLayersDto: {
|
|
6911
|
+
unit: components["schemas"]["TestPyramidLayerSnapshotDto"];
|
|
6912
|
+
integration: components["schemas"]["TestPyramidLayerSnapshotDto"];
|
|
6913
|
+
acceptance_bdd: components["schemas"]["TestPyramidLayerSnapshotDto"];
|
|
6914
|
+
contract: components["schemas"]["TestPyramidLayerSnapshotDto"];
|
|
6915
|
+
e2e: components["schemas"]["TestPyramidLayerSnapshotDto"];
|
|
6916
|
+
};
|
|
6917
|
+
TestPyramidSnapshotDto: {
|
|
6918
|
+
/** @enum {integer} */
|
|
6919
|
+
version: 1;
|
|
6920
|
+
layers: components["schemas"]["TestPyramidLayersDto"];
|
|
6921
|
+
/** @description Evidence suggests the repository's E2E suite exercises multiple services. */
|
|
6922
|
+
e2eCrossRepoCandidate: boolean;
|
|
6923
|
+
/** @description Hostnames or compose service names referenced by the E2E suite. */
|
|
6924
|
+
e2eReferencedTargets: string[];
|
|
6925
|
+
lineCoverage?: components["schemas"]["TestPyramidLineCoverageDto"];
|
|
6926
|
+
};
|
|
6927
|
+
TestPyramidLineCoverageDto: {
|
|
6928
|
+
/** @description Line coverage percent from Sonar or a committed coverage report. */
|
|
6929
|
+
linePercent: number;
|
|
6930
|
+
branchPercent: number | null;
|
|
6931
|
+
/** @enum {string} */
|
|
6932
|
+
source: "sonar" | "jacoco" | "lcov" | "cobertura" | "clover" | "go_cover";
|
|
6933
|
+
/** @description Path of the scanned report when the source is not Sonar. */
|
|
6934
|
+
reportPath?: string | null;
|
|
6935
|
+
} | null;
|
|
6936
|
+
TestPyramidCriteriaDto: {
|
|
6937
|
+
D1?: string;
|
|
6938
|
+
D2?: string;
|
|
6939
|
+
D3?: string;
|
|
6940
|
+
D4?: string;
|
|
6941
|
+
};
|
|
6942
|
+
/**
|
|
6943
|
+
* @description Run state the snapshot came from. The pyramid is derived from the filesystem scan, which finishes before rubric grading, so `partial_failed` and `failed` runs still carry a valid snapshot but no scores.
|
|
6944
|
+
* @enum {string}
|
|
6945
|
+
*/
|
|
6946
|
+
TestPyramidRunStatusDto: "succeeded" | "partial_failed" | "failed";
|
|
6947
|
+
TestPyramidHistoryPointDto: {
|
|
6948
|
+
/** Format: date-time */
|
|
6949
|
+
finishedAt: string;
|
|
6950
|
+
runStatus: components["schemas"]["TestPyramidRunStatusDto"];
|
|
6951
|
+
overallScore: number | null;
|
|
6952
|
+
testsQaPercent: number | null;
|
|
6953
|
+
testPyramid: components["schemas"]["TestPyramidSnapshotDto"];
|
|
6954
|
+
testPyramidCriteria: components["schemas"]["TestPyramidCriteriaDto"];
|
|
6955
|
+
};
|
|
6956
|
+
TestPyramidRepoHistoryDto: {
|
|
6957
|
+
/** Format: uuid */
|
|
6958
|
+
repoId: string;
|
|
6959
|
+
repoName: string;
|
|
6960
|
+
/** Format: date-time */
|
|
6961
|
+
connectedAt: string;
|
|
6962
|
+
points: components["schemas"]["TestPyramidHistoryPointDto"][];
|
|
6963
|
+
};
|
|
6964
|
+
WorkspaceTestPyramidHistoryDto: {
|
|
6965
|
+
/** Format: uuid */
|
|
6966
|
+
workspaceId: string;
|
|
6967
|
+
/** Format: date-time */
|
|
6968
|
+
generatedAt: string;
|
|
6969
|
+
repos: components["schemas"]["TestPyramidRepoHistoryDto"][];
|
|
6970
|
+
};
|
|
6971
|
+
TestPyramidLayerDeltaDto: {
|
|
6972
|
+
/** @enum {string} */
|
|
6973
|
+
presence: "unchanged" | "adopted" | "removed";
|
|
6974
|
+
fileCountDelta: number;
|
|
6975
|
+
addedFrameworks: string[];
|
|
6976
|
+
};
|
|
6977
|
+
TestPyramidLayerDeltasDto: {
|
|
6978
|
+
unit: components["schemas"]["TestPyramidLayerDeltaDto"];
|
|
6979
|
+
integration: components["schemas"]["TestPyramidLayerDeltaDto"];
|
|
6980
|
+
acceptance_bdd: components["schemas"]["TestPyramidLayerDeltaDto"];
|
|
6981
|
+
contract: components["schemas"]["TestPyramidLayerDeltaDto"];
|
|
6982
|
+
e2e: components["schemas"]["TestPyramidLayerDeltaDto"];
|
|
6983
|
+
};
|
|
6984
|
+
TestPyramidCriterionDeltaDto: {
|
|
6985
|
+
from: string | null;
|
|
6986
|
+
to: string;
|
|
6987
|
+
};
|
|
6988
|
+
TestPyramidCriterionDeltasDto: {
|
|
6989
|
+
D1?: components["schemas"]["TestPyramidCriterionDeltaDto"];
|
|
6990
|
+
D2?: components["schemas"]["TestPyramidCriterionDeltaDto"];
|
|
6991
|
+
D3?: components["schemas"]["TestPyramidCriterionDeltaDto"];
|
|
6992
|
+
D4?: components["schemas"]["TestPyramidCriterionDeltaDto"];
|
|
6993
|
+
};
|
|
6994
|
+
TestPyramidRepoProgressDto: {
|
|
6995
|
+
/** Format: uuid */
|
|
6996
|
+
repoId: string;
|
|
6997
|
+
repoName: string;
|
|
6998
|
+
/** Format: date-time */
|
|
6999
|
+
baselineAt: string;
|
|
7000
|
+
/** Format: date-time */
|
|
7001
|
+
previousAt: string | null;
|
|
7002
|
+
/** Format: date-time */
|
|
7003
|
+
currentAt: string;
|
|
7004
|
+
currentRunStatus: components["schemas"]["TestPyramidRunStatusDto"];
|
|
7005
|
+
/** @enum {string} */
|
|
7006
|
+
maturity: "missing" | "emerging" | "established" | "mature";
|
|
7007
|
+
testsQaPercent: number | null;
|
|
7008
|
+
testsQaPercentDelta: number | null;
|
|
7009
|
+
layerDeltas: components["schemas"]["TestPyramidLayerDeltasDto"];
|
|
7010
|
+
baselineLayerDeltas: components["schemas"]["TestPyramidLayerDeltasDto"];
|
|
7011
|
+
criterionDeltas: components["schemas"]["TestPyramidCriterionDeltasDto"];
|
|
7012
|
+
testPyramid: components["schemas"]["TestPyramidSnapshotDto"];
|
|
7013
|
+
testPyramidCriteria: components["schemas"]["TestPyramidCriteriaDto"];
|
|
7014
|
+
lineCoverage?: components["schemas"]["TestPyramidLineCoverageDto"];
|
|
7015
|
+
};
|
|
7016
|
+
TestPyramidLayerCoverageDto: {
|
|
7017
|
+
presentRepos: number;
|
|
7018
|
+
applicableRepos: number;
|
|
7019
|
+
percent: number | null;
|
|
7020
|
+
missingRepoIds: string[];
|
|
7021
|
+
};
|
|
7022
|
+
TestPyramidLayerCoverageMapDto: {
|
|
7023
|
+
unit: components["schemas"]["TestPyramidLayerCoverageDto"];
|
|
7024
|
+
integration: components["schemas"]["TestPyramidLayerCoverageDto"];
|
|
7025
|
+
acceptance_bdd: components["schemas"]["TestPyramidLayerCoverageDto"];
|
|
7026
|
+
contract: components["schemas"]["TestPyramidLayerCoverageDto"];
|
|
7027
|
+
e2e: components["schemas"]["TestPyramidLayerCoverageDto"];
|
|
7028
|
+
};
|
|
7029
|
+
TestPyramidMaturityCountsDto: {
|
|
7030
|
+
missing: number;
|
|
7031
|
+
emerging: number;
|
|
7032
|
+
established: number;
|
|
7033
|
+
mature: number;
|
|
7034
|
+
};
|
|
7035
|
+
TestPyramidCrossRepoMatchDto: {
|
|
7036
|
+
/** Format: uuid */
|
|
7037
|
+
sourceRepoId: string;
|
|
7038
|
+
targetRepoIds: string[];
|
|
7039
|
+
referencedTargets: string[];
|
|
7040
|
+
};
|
|
7041
|
+
WorkspaceTestPyramidSummaryDto: {
|
|
7042
|
+
reposWithPyramid: number;
|
|
7043
|
+
/** @description Repositories whose newest snapshot came from a run whose rubric grading did not complete. Their pyramid is valid but Tests & QA scores are unavailable. */
|
|
7044
|
+
reposFromDegradedRuns: string[];
|
|
7045
|
+
layerCoverage: components["schemas"]["TestPyramidLayerCoverageMapDto"];
|
|
7046
|
+
maturityCounts: components["schemas"]["TestPyramidMaturityCountsDto"];
|
|
7047
|
+
e2eCrossRepoCandidateRepoIds: string[];
|
|
7048
|
+
e2eCrossRepoMatches: components["schemas"]["TestPyramidCrossRepoMatchDto"][];
|
|
7049
|
+
/** @description True only when an E2E target is matched to another repository in the workspace. */
|
|
7050
|
+
crossRepoE2ePresent: boolean;
|
|
7051
|
+
};
|
|
7052
|
+
WorkspaceTestPyramidProgressDto: {
|
|
7053
|
+
/** Format: uuid */
|
|
7054
|
+
workspaceId: string;
|
|
7055
|
+
/** Format: date-time */
|
|
7056
|
+
generatedAt: string;
|
|
7057
|
+
repos: components["schemas"]["TestPyramidRepoProgressDto"][];
|
|
7058
|
+
workspace: components["schemas"]["WorkspaceTestPyramidSummaryDto"];
|
|
7059
|
+
};
|
|
6798
7060
|
ReadinessScoreHistoryPointDto: {
|
|
6799
7061
|
/** Format: date-time */
|
|
6800
7062
|
finishedAt: string;
|
|
6801
7063
|
overallScore: number;
|
|
6802
7064
|
/** @description Per-dimension percentages captured on this scan run. */
|
|
6803
7065
|
dimensionScores?: components["schemas"]["ReadinessScoreHistoryDimensionScoreDto"][];
|
|
7066
|
+
testPyramid?: components["schemas"]["TestPyramidSnapshotDto"];
|
|
7067
|
+
testPyramidCriteria?: components["schemas"]["TestPyramidCriteriaDto"];
|
|
6804
7068
|
};
|
|
6805
7069
|
ReadinessRepoScoreHistoryDto: {
|
|
6806
7070
|
/** Format: uuid */
|
|
@@ -9320,6 +9584,115 @@ export interface components {
|
|
|
9320
9584
|
topHotspots: components["schemas"]["CodeInsightsOrgHotspotDto"][];
|
|
9321
9585
|
sonar: components["schemas"]["CodeInsightsSonarDto"];
|
|
9322
9586
|
};
|
|
9587
|
+
/**
|
|
9588
|
+
* @description Presence maturity (model A) using count-based layer presence (`fileCount > 0`), not AF signal-inclusive `present`.
|
|
9589
|
+
* @enum {string}
|
|
9590
|
+
*/
|
|
9591
|
+
InsightsTestPyramidMaturityDto: "missing" | "emerging" | "established" | "mature";
|
|
9592
|
+
/**
|
|
9593
|
+
* @description Advisory shape label vs fixed 70/20/10. `insufficient_data` when total classified test files < 10 (band percents are null).
|
|
9594
|
+
* @enum {string}
|
|
9595
|
+
*/
|
|
9596
|
+
InsightsTestPyramidShapeLabelDto: "insufficient_data" | "base_heavy" | "balanced" | "top_heavy" | "middle_heavy";
|
|
9597
|
+
InsightsTestPyramidShapeDto: {
|
|
9598
|
+
label: components["schemas"]["InsightsTestPyramidShapeLabelDto"];
|
|
9599
|
+
/** @description Sum of classified test **files** across the five layers (not test cases). */
|
|
9600
|
+
totalClassifiedFiles: number;
|
|
9601
|
+
/** @description Share of classified files in unit (base). Null when insufficient_data. */
|
|
9602
|
+
basePercent: number | null;
|
|
9603
|
+
/** @description Share in integration + contract + acceptance_bdd (middle). Null when insufficient_data. */
|
|
9604
|
+
middlePercent: number | null;
|
|
9605
|
+
/** @description Share in e2e (top). Null when insufficient_data. */
|
|
9606
|
+
topPercent: number | null;
|
|
9607
|
+
targets: {
|
|
9608
|
+
/** @enum {number} */
|
|
9609
|
+
basePercent: 70;
|
|
9610
|
+
/** @enum {number} */
|
|
9611
|
+
middlePercent: 20;
|
|
9612
|
+
/** @enum {number} */
|
|
9613
|
+
topPercent: 10;
|
|
9614
|
+
};
|
|
9615
|
+
};
|
|
9616
|
+
InsightsTestPyramidLayerCountsDto: {
|
|
9617
|
+
unit: number;
|
|
9618
|
+
integration: number;
|
|
9619
|
+
acceptance_bdd: number;
|
|
9620
|
+
contract: number;
|
|
9621
|
+
e2e: number;
|
|
9622
|
+
};
|
|
9623
|
+
InsightsTestPyramidLayerPresentDto: {
|
|
9624
|
+
unit: boolean;
|
|
9625
|
+
integration: boolean;
|
|
9626
|
+
acceptance_bdd: boolean;
|
|
9627
|
+
contract: boolean;
|
|
9628
|
+
e2e: boolean;
|
|
9629
|
+
};
|
|
9630
|
+
InsightsTestPyramidLayerPresenceDto: {
|
|
9631
|
+
presentRepos: number;
|
|
9632
|
+
applicableRepos: number;
|
|
9633
|
+
percent: number | null;
|
|
9634
|
+
missingRepoIds: string[];
|
|
9635
|
+
missingRepoNames: string[];
|
|
9636
|
+
};
|
|
9637
|
+
InsightsTestPyramidGapRepoDto: {
|
|
9638
|
+
/** Format: uuid */
|
|
9639
|
+
repoId: string;
|
|
9640
|
+
repoName: string;
|
|
9641
|
+
};
|
|
9642
|
+
InsightsTestPyramidGapsByLayerDto: {
|
|
9643
|
+
unit: components["schemas"]["InsightsTestPyramidGapRepoDto"][];
|
|
9644
|
+
integration: components["schemas"]["InsightsTestPyramidGapRepoDto"][];
|
|
9645
|
+
acceptance_bdd: components["schemas"]["InsightsTestPyramidGapRepoDto"][];
|
|
9646
|
+
contract: components["schemas"]["InsightsTestPyramidGapRepoDto"][];
|
|
9647
|
+
e2e: components["schemas"]["InsightsTestPyramidGapRepoDto"][];
|
|
9648
|
+
};
|
|
9649
|
+
InsightsTestPyramidMaturityCountsDto: {
|
|
9650
|
+
missing: number;
|
|
9651
|
+
emerging: number;
|
|
9652
|
+
established: number;
|
|
9653
|
+
mature: number;
|
|
9654
|
+
};
|
|
9655
|
+
InsightsTestPyramidLayerPresenceMapDto: {
|
|
9656
|
+
unit: components["schemas"]["InsightsTestPyramidLayerPresenceDto"];
|
|
9657
|
+
integration: components["schemas"]["InsightsTestPyramidLayerPresenceDto"];
|
|
9658
|
+
acceptance_bdd: components["schemas"]["InsightsTestPyramidLayerPresenceDto"];
|
|
9659
|
+
contract: components["schemas"]["InsightsTestPyramidLayerPresenceDto"];
|
|
9660
|
+
e2e: components["schemas"]["InsightsTestPyramidLayerPresenceDto"];
|
|
9661
|
+
};
|
|
9662
|
+
InsightsTestPyramidSummaryDto: {
|
|
9663
|
+
/** Format: uuid */
|
|
9664
|
+
workspaceId: string;
|
|
9665
|
+
/** Format: date-time */
|
|
9666
|
+
generatedAt: string;
|
|
9667
|
+
reposWithPyramid: number;
|
|
9668
|
+
/** @description Repos whose newest pyramid came from a non-succeeded readiness run. */
|
|
9669
|
+
reposFromDegradedRuns: string[];
|
|
9670
|
+
/** @description Workspace sum of classified test files (not cases). */
|
|
9671
|
+
totalClassifiedFiles: number;
|
|
9672
|
+
shape: components["schemas"]["InsightsTestPyramidShapeDto"];
|
|
9673
|
+
layerPresence: components["schemas"]["InsightsTestPyramidLayerPresenceMapDto"];
|
|
9674
|
+
maturityCounts: components["schemas"]["InsightsTestPyramidMaturityCountsDto"];
|
|
9675
|
+
gapsByLayer: components["schemas"]["InsightsTestPyramidGapsByLayerDto"];
|
|
9676
|
+
};
|
|
9677
|
+
InsightsTestPyramidRepoItemDto: {
|
|
9678
|
+
/** Format: uuid */
|
|
9679
|
+
repoId: string;
|
|
9680
|
+
repoName: string;
|
|
9681
|
+
/** Format: date-time */
|
|
9682
|
+
scannedAt: string;
|
|
9683
|
+
currentRunStatus: components["schemas"]["TestPyramidRunStatusDto"];
|
|
9684
|
+
maturity: components["schemas"]["InsightsTestPyramidMaturityDto"];
|
|
9685
|
+
layerFileCounts: components["schemas"]["InsightsTestPyramidLayerCountsDto"];
|
|
9686
|
+
layerPresent: components["schemas"]["InsightsTestPyramidLayerPresentDto"];
|
|
9687
|
+
totalClassifiedFiles: number;
|
|
9688
|
+
shape: components["schemas"]["InsightsTestPyramidShapeDto"];
|
|
9689
|
+
};
|
|
9690
|
+
InsightsTestPyramidRepoListDto: {
|
|
9691
|
+
items: components["schemas"]["InsightsTestPyramidRepoItemDto"][];
|
|
9692
|
+
total: number;
|
|
9693
|
+
limit: number;
|
|
9694
|
+
offset: number;
|
|
9695
|
+
};
|
|
9323
9696
|
};
|
|
9324
9697
|
responses: {
|
|
9325
9698
|
/** @description Missing or invalid bearer token */
|
|
@@ -9407,6 +9780,10 @@ export interface components {
|
|
|
9407
9780
|
CodeInsightsRepoSort: "repoName" | "locTotal" | "ccAvg" | "dupPct" | "lastMeasuredAt";
|
|
9408
9781
|
/** @description Case-insensitive substring filter on repo name / provider slug. */
|
|
9409
9782
|
CodeInsightsRepoSearch: string;
|
|
9783
|
+
/** @description Allowlisted Test pyramid assessment repo sort field. */
|
|
9784
|
+
InsightsTestPyramidRepoSort: "repoName" | "totalClassifiedFiles" | "scannedAt" | "maturity";
|
|
9785
|
+
/** @description Case-insensitive substring filter on repository name. */
|
|
9786
|
+
InsightsTestPyramidRepoSearch: string;
|
|
9410
9787
|
/** @description Case-insensitive filter on repository name, language, or provider slug. */
|
|
9411
9788
|
ReadinessRepoSearch: string;
|
|
9412
9789
|
/** @description Exact language filter (e.g. `typescript`). */
|
|
@@ -9668,6 +10045,26 @@ export type DimensionScoreDetailDto = components['schemas']['DimensionScoreDetai
|
|
|
9668
10045
|
export type ReadinessRepoRunHistoryItemDto = components['schemas']['ReadinessRepoRunHistoryItemDto'];
|
|
9669
10046
|
export type ReadinessRepoRunListDto = components['schemas']['ReadinessRepoRunListDto'];
|
|
9670
10047
|
export type ReadinessScoreHistoryDimensionScoreDto = components['schemas']['ReadinessScoreHistoryDimensionScoreDto'];
|
|
10048
|
+
export type TestPyramidLayerSnapshotDto = components['schemas']['TestPyramidLayerSnapshotDto'];
|
|
10049
|
+
export type TestPyramidLayersDto = components['schemas']['TestPyramidLayersDto'];
|
|
10050
|
+
export type TestPyramidSnapshotDto = components['schemas']['TestPyramidSnapshotDto'];
|
|
10051
|
+
export type TestPyramidLineCoverageDto = components['schemas']['TestPyramidLineCoverageDto'];
|
|
10052
|
+
export type TestPyramidCriteriaDto = components['schemas']['TestPyramidCriteriaDto'];
|
|
10053
|
+
export type TestPyramidRunStatusDto = components['schemas']['TestPyramidRunStatusDto'];
|
|
10054
|
+
export type TestPyramidHistoryPointDto = components['schemas']['TestPyramidHistoryPointDto'];
|
|
10055
|
+
export type TestPyramidRepoHistoryDto = components['schemas']['TestPyramidRepoHistoryDto'];
|
|
10056
|
+
export type WorkspaceTestPyramidHistoryDto = components['schemas']['WorkspaceTestPyramidHistoryDto'];
|
|
10057
|
+
export type TestPyramidLayerDeltaDto = components['schemas']['TestPyramidLayerDeltaDto'];
|
|
10058
|
+
export type TestPyramidLayerDeltasDto = components['schemas']['TestPyramidLayerDeltasDto'];
|
|
10059
|
+
export type TestPyramidCriterionDeltaDto = components['schemas']['TestPyramidCriterionDeltaDto'];
|
|
10060
|
+
export type TestPyramidCriterionDeltasDto = components['schemas']['TestPyramidCriterionDeltasDto'];
|
|
10061
|
+
export type TestPyramidRepoProgressDto = components['schemas']['TestPyramidRepoProgressDto'];
|
|
10062
|
+
export type TestPyramidLayerCoverageDto = components['schemas']['TestPyramidLayerCoverageDto'];
|
|
10063
|
+
export type TestPyramidLayerCoverageMapDto = components['schemas']['TestPyramidLayerCoverageMapDto'];
|
|
10064
|
+
export type TestPyramidMaturityCountsDto = components['schemas']['TestPyramidMaturityCountsDto'];
|
|
10065
|
+
export type TestPyramidCrossRepoMatchDto = components['schemas']['TestPyramidCrossRepoMatchDto'];
|
|
10066
|
+
export type WorkspaceTestPyramidSummaryDto = components['schemas']['WorkspaceTestPyramidSummaryDto'];
|
|
10067
|
+
export type WorkspaceTestPyramidProgressDto = components['schemas']['WorkspaceTestPyramidProgressDto'];
|
|
9671
10068
|
export type ReadinessScoreHistoryPointDto = components['schemas']['ReadinessScoreHistoryPointDto'];
|
|
9672
10069
|
export type ReadinessRepoScoreHistoryDto = components['schemas']['ReadinessRepoScoreHistoryDto'];
|
|
9673
10070
|
export type WorkspaceReadinessScoreHistoryDto = components['schemas']['WorkspaceReadinessScoreHistoryDto'];
|
|
@@ -9910,6 +10307,19 @@ export type CodeInsightsDesignAnalyzeResponseDto = components['schemas']['CodeIn
|
|
|
9910
10307
|
export type CodeInsightsOrgHotspotDto = components['schemas']['CodeInsightsOrgHotspotDto'];
|
|
9911
10308
|
export type CodeInsightsSonarDto = components['schemas']['CodeInsightsSonarDto'];
|
|
9912
10309
|
export type CodeInsightsSummaryDto = components['schemas']['CodeInsightsSummaryDto'];
|
|
10310
|
+
export type InsightsTestPyramidMaturityDto = components['schemas']['InsightsTestPyramidMaturityDto'];
|
|
10311
|
+
export type InsightsTestPyramidShapeLabelDto = components['schemas']['InsightsTestPyramidShapeLabelDto'];
|
|
10312
|
+
export type InsightsTestPyramidShapeDto = components['schemas']['InsightsTestPyramidShapeDto'];
|
|
10313
|
+
export type InsightsTestPyramidLayerCountsDto = components['schemas']['InsightsTestPyramidLayerCountsDto'];
|
|
10314
|
+
export type InsightsTestPyramidLayerPresentDto = components['schemas']['InsightsTestPyramidLayerPresentDto'];
|
|
10315
|
+
export type InsightsTestPyramidLayerPresenceDto = components['schemas']['InsightsTestPyramidLayerPresenceDto'];
|
|
10316
|
+
export type InsightsTestPyramidGapRepoDto = components['schemas']['InsightsTestPyramidGapRepoDto'];
|
|
10317
|
+
export type InsightsTestPyramidGapsByLayerDto = components['schemas']['InsightsTestPyramidGapsByLayerDto'];
|
|
10318
|
+
export type InsightsTestPyramidMaturityCountsDto = components['schemas']['InsightsTestPyramidMaturityCountsDto'];
|
|
10319
|
+
export type InsightsTestPyramidLayerPresenceMapDto = components['schemas']['InsightsTestPyramidLayerPresenceMapDto'];
|
|
10320
|
+
export type InsightsTestPyramidSummaryDto = components['schemas']['InsightsTestPyramidSummaryDto'];
|
|
10321
|
+
export type InsightsTestPyramidRepoItemDto = components['schemas']['InsightsTestPyramidRepoItemDto'];
|
|
10322
|
+
export type InsightsTestPyramidRepoListDto = components['schemas']['InsightsTestPyramidRepoListDto'];
|
|
9913
10323
|
export type ResponseUnauthorized = components['responses']['Unauthorized'];
|
|
9914
10324
|
export type ResponseForbidden = components['responses']['Forbidden'];
|
|
9915
10325
|
export type ResponseZenHrSyncInProgress = components['responses']['ZenHrSyncInProgress'];
|
|
@@ -9941,6 +10351,8 @@ export type ParameterPaginationOrder = components['parameters']['PaginationOrder
|
|
|
9941
10351
|
export type ParameterReadinessRepoSort = components['parameters']['ReadinessRepoSort'];
|
|
9942
10352
|
export type ParameterCodeInsightsRepoSort = components['parameters']['CodeInsightsRepoSort'];
|
|
9943
10353
|
export type ParameterCodeInsightsRepoSearch = components['parameters']['CodeInsightsRepoSearch'];
|
|
10354
|
+
export type ParameterInsightsTestPyramidRepoSort = components['parameters']['InsightsTestPyramidRepoSort'];
|
|
10355
|
+
export type ParameterInsightsTestPyramidRepoSearch = components['parameters']['InsightsTestPyramidRepoSearch'];
|
|
9944
10356
|
export type ParameterReadinessRepoSearch = components['parameters']['ReadinessRepoSearch'];
|
|
9945
10357
|
export type ParameterReadinessRepoLanguage = components['parameters']['ReadinessRepoLanguage'];
|
|
9946
10358
|
export type ParameterReadinessFixSort = components['parameters']['ReadinessFixSort'];
|
|
@@ -13864,6 +14276,106 @@ export interface operations {
|
|
|
13864
14276
|
};
|
|
13865
14277
|
};
|
|
13866
14278
|
};
|
|
14279
|
+
getInsightsTestPyramidSummary: {
|
|
14280
|
+
parameters: {
|
|
14281
|
+
query?: never;
|
|
14282
|
+
header?: never;
|
|
14283
|
+
path: {
|
|
14284
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
14285
|
+
};
|
|
14286
|
+
cookie?: never;
|
|
14287
|
+
};
|
|
14288
|
+
requestBody?: never;
|
|
14289
|
+
responses: {
|
|
14290
|
+
/** @description Test pyramid assessment workspace summary */
|
|
14291
|
+
200: {
|
|
14292
|
+
headers: {
|
|
14293
|
+
[name: string]: unknown;
|
|
14294
|
+
};
|
|
14295
|
+
content: {
|
|
14296
|
+
"application/json": components["schemas"]["InsightsTestPyramidSummaryDto"];
|
|
14297
|
+
};
|
|
14298
|
+
};
|
|
14299
|
+
401: components["responses"]["Unauthorized"];
|
|
14300
|
+
403: components["responses"]["Forbidden"];
|
|
14301
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
14302
|
+
404: {
|
|
14303
|
+
headers: {
|
|
14304
|
+
[name: string]: unknown;
|
|
14305
|
+
};
|
|
14306
|
+
content?: never;
|
|
14307
|
+
};
|
|
14308
|
+
/** @description Test pyramid history not supported by store */
|
|
14309
|
+
501: {
|
|
14310
|
+
headers: {
|
|
14311
|
+
[name: string]: unknown;
|
|
14312
|
+
};
|
|
14313
|
+
content: {
|
|
14314
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14315
|
+
};
|
|
14316
|
+
};
|
|
14317
|
+
};
|
|
14318
|
+
};
|
|
14319
|
+
listInsightsTestPyramidRepos: {
|
|
14320
|
+
parameters: {
|
|
14321
|
+
query?: {
|
|
14322
|
+
/** @description Page size (default 25, max 100). */
|
|
14323
|
+
limit?: components["parameters"]["PaginationLimit"];
|
|
14324
|
+
/** @description Zero-based row offset into the filtered, sorted result set. */
|
|
14325
|
+
offset?: components["parameters"]["PaginationOffset"];
|
|
14326
|
+
/** @description Allowlisted Test pyramid assessment repo sort field. */
|
|
14327
|
+
sort?: components["parameters"]["InsightsTestPyramidRepoSort"];
|
|
14328
|
+
/** @description Sort direction. */
|
|
14329
|
+
order?: components["parameters"]["PaginationOrder"];
|
|
14330
|
+
/** @description Case-insensitive substring filter on repository name. */
|
|
14331
|
+
search?: components["parameters"]["InsightsTestPyramidRepoSearch"];
|
|
14332
|
+
};
|
|
14333
|
+
header?: never;
|
|
14334
|
+
path: {
|
|
14335
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
14336
|
+
};
|
|
14337
|
+
cookie?: never;
|
|
14338
|
+
};
|
|
14339
|
+
requestBody?: never;
|
|
14340
|
+
responses: {
|
|
14341
|
+
/** @description Paginated test pyramid assessment repo rows */
|
|
14342
|
+
200: {
|
|
14343
|
+
headers: {
|
|
14344
|
+
[name: string]: unknown;
|
|
14345
|
+
};
|
|
14346
|
+
content: {
|
|
14347
|
+
"application/json": components["schemas"]["InsightsTestPyramidRepoListDto"];
|
|
14348
|
+
};
|
|
14349
|
+
};
|
|
14350
|
+
/** @description Invalid pagination or sort query */
|
|
14351
|
+
400: {
|
|
14352
|
+
headers: {
|
|
14353
|
+
[name: string]: unknown;
|
|
14354
|
+
};
|
|
14355
|
+
content: {
|
|
14356
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14357
|
+
};
|
|
14358
|
+
};
|
|
14359
|
+
401: components["responses"]["Unauthorized"];
|
|
14360
|
+
403: components["responses"]["Forbidden"];
|
|
14361
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
14362
|
+
404: {
|
|
14363
|
+
headers: {
|
|
14364
|
+
[name: string]: unknown;
|
|
14365
|
+
};
|
|
14366
|
+
content?: never;
|
|
14367
|
+
};
|
|
14368
|
+
/** @description Test pyramid history not supported by store */
|
|
14369
|
+
501: {
|
|
14370
|
+
headers: {
|
|
14371
|
+
[name: string]: unknown;
|
|
14372
|
+
};
|
|
14373
|
+
content: {
|
|
14374
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14375
|
+
};
|
|
14376
|
+
};
|
|
14377
|
+
};
|
|
14378
|
+
};
|
|
13867
14379
|
getAiToolMembers: {
|
|
13868
14380
|
parameters: {
|
|
13869
14381
|
query?: {
|
|
@@ -16253,6 +16765,138 @@ export interface operations {
|
|
|
16253
16765
|
};
|
|
16254
16766
|
};
|
|
16255
16767
|
};
|
|
16768
|
+
getReadinessTestPyramid: {
|
|
16769
|
+
parameters: {
|
|
16770
|
+
query?: never;
|
|
16771
|
+
header?: never;
|
|
16772
|
+
path: {
|
|
16773
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
16774
|
+
};
|
|
16775
|
+
cookie?: never;
|
|
16776
|
+
};
|
|
16777
|
+
requestBody?: never;
|
|
16778
|
+
responses: {
|
|
16779
|
+
/** @description Latest test-pyramid report and progress */
|
|
16780
|
+
200: {
|
|
16781
|
+
headers: {
|
|
16782
|
+
[name: string]: unknown;
|
|
16783
|
+
};
|
|
16784
|
+
content: {
|
|
16785
|
+
"application/json": components["schemas"]["WorkspaceTestPyramidProgressDto"];
|
|
16786
|
+
};
|
|
16787
|
+
};
|
|
16788
|
+
401: components["responses"]["Unauthorized"];
|
|
16789
|
+
403: components["responses"]["Forbidden"];
|
|
16790
|
+
/** @description Workspace does not exist */
|
|
16791
|
+
404: {
|
|
16792
|
+
headers: {
|
|
16793
|
+
[name: string]: unknown;
|
|
16794
|
+
};
|
|
16795
|
+
content: {
|
|
16796
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
16797
|
+
};
|
|
16798
|
+
};
|
|
16799
|
+
/** @description Readiness history is not supported by the configured store */
|
|
16800
|
+
501: {
|
|
16801
|
+
headers: {
|
|
16802
|
+
[name: string]: unknown;
|
|
16803
|
+
};
|
|
16804
|
+
content: {
|
|
16805
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
16806
|
+
};
|
|
16807
|
+
};
|
|
16808
|
+
};
|
|
16809
|
+
};
|
|
16810
|
+
getReadinessTestPyramidHistory: {
|
|
16811
|
+
parameters: {
|
|
16812
|
+
query?: {
|
|
16813
|
+
since?: string;
|
|
16814
|
+
limitPerRepo?: number;
|
|
16815
|
+
};
|
|
16816
|
+
header?: never;
|
|
16817
|
+
path: {
|
|
16818
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
16819
|
+
};
|
|
16820
|
+
cookie?: never;
|
|
16821
|
+
};
|
|
16822
|
+
requestBody?: never;
|
|
16823
|
+
responses: {
|
|
16824
|
+
/** @description Test-pyramid history grouped by repository */
|
|
16825
|
+
200: {
|
|
16826
|
+
headers: {
|
|
16827
|
+
[name: string]: unknown;
|
|
16828
|
+
};
|
|
16829
|
+
content: {
|
|
16830
|
+
"application/json": components["schemas"]["WorkspaceTestPyramidHistoryDto"];
|
|
16831
|
+
};
|
|
16832
|
+
};
|
|
16833
|
+
/** @description Invalid query */
|
|
16834
|
+
400: {
|
|
16835
|
+
headers: {
|
|
16836
|
+
[name: string]: unknown;
|
|
16837
|
+
};
|
|
16838
|
+
content: {
|
|
16839
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
16840
|
+
};
|
|
16841
|
+
};
|
|
16842
|
+
401: components["responses"]["Unauthorized"];
|
|
16843
|
+
403: components["responses"]["Forbidden"];
|
|
16844
|
+
/** @description Readiness history is not supported by the configured store */
|
|
16845
|
+
501: {
|
|
16846
|
+
headers: {
|
|
16847
|
+
[name: string]: unknown;
|
|
16848
|
+
};
|
|
16849
|
+
content: {
|
|
16850
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
16851
|
+
};
|
|
16852
|
+
};
|
|
16853
|
+
};
|
|
16854
|
+
};
|
|
16855
|
+
getReadinessTestPyramidProgress: {
|
|
16856
|
+
parameters: {
|
|
16857
|
+
query?: {
|
|
16858
|
+
since?: string;
|
|
16859
|
+
limitPerRepo?: number;
|
|
16860
|
+
};
|
|
16861
|
+
header?: never;
|
|
16862
|
+
path: {
|
|
16863
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
16864
|
+
};
|
|
16865
|
+
cookie?: never;
|
|
16866
|
+
};
|
|
16867
|
+
requestBody?: never;
|
|
16868
|
+
responses: {
|
|
16869
|
+
/** @description Test-pyramid code progress */
|
|
16870
|
+
200: {
|
|
16871
|
+
headers: {
|
|
16872
|
+
[name: string]: unknown;
|
|
16873
|
+
};
|
|
16874
|
+
content: {
|
|
16875
|
+
"application/json": components["schemas"]["WorkspaceTestPyramidProgressDto"];
|
|
16876
|
+
};
|
|
16877
|
+
};
|
|
16878
|
+
/** @description Invalid query */
|
|
16879
|
+
400: {
|
|
16880
|
+
headers: {
|
|
16881
|
+
[name: string]: unknown;
|
|
16882
|
+
};
|
|
16883
|
+
content: {
|
|
16884
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
16885
|
+
};
|
|
16886
|
+
};
|
|
16887
|
+
401: components["responses"]["Unauthorized"];
|
|
16888
|
+
403: components["responses"]["Forbidden"];
|
|
16889
|
+
/** @description Readiness history is not supported by the configured store */
|
|
16890
|
+
501: {
|
|
16891
|
+
headers: {
|
|
16892
|
+
[name: string]: unknown;
|
|
16893
|
+
};
|
|
16894
|
+
content: {
|
|
16895
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
16896
|
+
};
|
|
16897
|
+
};
|
|
16898
|
+
};
|
|
16899
|
+
};
|
|
16256
16900
|
getReadinessScoreHistory: {
|
|
16257
16901
|
parameters: {
|
|
16258
16902
|
query?: {
|