@thinkai/tai-api-contract 2.63.0 → 2.65.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 +753 -1
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +125 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/openapi/openapi.yaml +706 -1
- package/package.json +1 -1
- package/src/generated/openapi.ts +753 -1
- package/src/index.ts +163 -0
|
@@ -962,6 +962,146 @@ export interface paths {
|
|
|
962
962
|
patch?: never;
|
|
963
963
|
trace?: never;
|
|
964
964
|
};
|
|
965
|
+
"/workspaces/{workspaceId}/insights/recommendations-page/verdict-summary": {
|
|
966
|
+
parameters: {
|
|
967
|
+
query?: never;
|
|
968
|
+
header?: never;
|
|
969
|
+
path?: never;
|
|
970
|
+
cookie?: never;
|
|
971
|
+
};
|
|
972
|
+
/**
|
|
973
|
+
* Insights recommendations — verdict summary cards
|
|
974
|
+
* @description Top status cards for `/insights-recommendations`. `productivityMultiplier` is the merged-PR volume ratio versus the previous equal-length window (not AI-active vs non-users). `ciFailRatePct` is portfolio CI fail rate percent. Cost statuses compare AI spend per merged PR to the prior window. Status thresholds match the product UI: productivity ≥1.5 healthy / ≥1.0 watch / else at-risk; CI fail <15 healthy / ≤30 watch / else at-risk; cost change ≤0 healthy / <20% watch / else at-risk (prev≤0 → watch).
|
|
975
|
+
*/
|
|
976
|
+
get: operations["getInsightsRecommendationsVerdictSummary"];
|
|
977
|
+
put?: never;
|
|
978
|
+
post?: never;
|
|
979
|
+
delete?: never;
|
|
980
|
+
options?: never;
|
|
981
|
+
head?: never;
|
|
982
|
+
patch?: never;
|
|
983
|
+
trace?: never;
|
|
984
|
+
};
|
|
985
|
+
"/workspaces/{workspaceId}/insights/recommendations-page/roi-quadrant": {
|
|
986
|
+
parameters: {
|
|
987
|
+
query?: never;
|
|
988
|
+
header?: never;
|
|
989
|
+
path?: never;
|
|
990
|
+
cookie?: never;
|
|
991
|
+
};
|
|
992
|
+
/**
|
|
993
|
+
* Insights recommendations — AI spend vs delivery output
|
|
994
|
+
* @description Per-engineer AI spend (USD) and merged PR counts for the scatter / ROI quadrant. Includes engineers with spend>0 or mergedPrs>0. Medians are over the returned set (n<2 uses the single point or zeros when empty). `id` is the stable org person id.
|
|
995
|
+
*/
|
|
996
|
+
get: operations["getInsightsRecommendationsRoiQuadrant"];
|
|
997
|
+
put?: never;
|
|
998
|
+
post?: never;
|
|
999
|
+
delete?: never;
|
|
1000
|
+
options?: never;
|
|
1001
|
+
head?: never;
|
|
1002
|
+
patch?: never;
|
|
1003
|
+
trace?: never;
|
|
1004
|
+
};
|
|
1005
|
+
"/workspaces/{workspaceId}/insights/recommendations-page/velocity-quality": {
|
|
1006
|
+
parameters: {
|
|
1007
|
+
query?: never;
|
|
1008
|
+
header?: never;
|
|
1009
|
+
path?: never;
|
|
1010
|
+
cookie?: never;
|
|
1011
|
+
};
|
|
1012
|
+
/**
|
|
1013
|
+
* Insights recommendations — velocity vs quality weekly series
|
|
1014
|
+
* @description Weekly merged PR volume and CI fail rate for the filter window. Weeks follow the Measure calendar-week bucket convention. `targetFailRatePct` is the org target (15). `volumeGrowthPct` is percent change vs the prior equal-length period.
|
|
1015
|
+
*/
|
|
1016
|
+
get: operations["getInsightsRecommendationsVelocityQuality"];
|
|
1017
|
+
put?: never;
|
|
1018
|
+
post?: never;
|
|
1019
|
+
delete?: never;
|
|
1020
|
+
options?: never;
|
|
1021
|
+
head?: never;
|
|
1022
|
+
patch?: never;
|
|
1023
|
+
trace?: never;
|
|
1024
|
+
};
|
|
1025
|
+
"/workspaces/{workspaceId}/insights/recommendations-page/review-pipeline": {
|
|
1026
|
+
parameters: {
|
|
1027
|
+
query?: never;
|
|
1028
|
+
header?: never;
|
|
1029
|
+
path?: never;
|
|
1030
|
+
cookie?: never;
|
|
1031
|
+
};
|
|
1032
|
+
/**
|
|
1033
|
+
* Insights recommendations — review bottleneck funnel
|
|
1034
|
+
* @description Review funnel stages `open-review`, `review-approval`, `approval-merge`, and `merged`. Wait stages use delivery-health hours (`avgReviewWaitHours`, `avgApprovalHours`, and approval→merge as max(0, avgTimeToMergeHours − wait − approval)). The `merged` stage uses `medianHours=0` (volume is not hours). `bottleneckStageId` is the wait stage with the highest median hours. `reviewerLoad` comes from persisted `deliveryHealth.topReviewers` when available; otherwise an empty array (never invented reviewers).
|
|
1035
|
+
*/
|
|
1036
|
+
get: operations["getInsightsRecommendationsReviewPipeline"];
|
|
1037
|
+
put?: never;
|
|
1038
|
+
post?: never;
|
|
1039
|
+
delete?: never;
|
|
1040
|
+
options?: never;
|
|
1041
|
+
head?: never;
|
|
1042
|
+
patch?: never;
|
|
1043
|
+
trace?: never;
|
|
1044
|
+
};
|
|
1045
|
+
"/workspaces/{workspaceId}/insights/recommendations-page/cost-per-pr": {
|
|
1046
|
+
parameters: {
|
|
1047
|
+
query?: never;
|
|
1048
|
+
header?: never;
|
|
1049
|
+
path?: never;
|
|
1050
|
+
cookie?: never;
|
|
1051
|
+
};
|
|
1052
|
+
/**
|
|
1053
|
+
* Insights recommendations — cost per merged PR by team
|
|
1054
|
+
* @description Org and per-team AI spend / merged PRs. Teams with zero merged PRs in the window are omitted. `costPerPrUsd = spendUsd / mergedPrs`. `activeAi` is distinct AI-active members on the team in the window (provider filter applied).
|
|
1055
|
+
*/
|
|
1056
|
+
get: operations["getInsightsRecommendationsCostPerPr"];
|
|
1057
|
+
put?: never;
|
|
1058
|
+
post?: never;
|
|
1059
|
+
delete?: never;
|
|
1060
|
+
options?: never;
|
|
1061
|
+
head?: never;
|
|
1062
|
+
patch?: never;
|
|
1063
|
+
trace?: never;
|
|
1064
|
+
};
|
|
1065
|
+
"/workspaces/{workspaceId}/insights/recommendations-page/adoption-gap": {
|
|
1066
|
+
parameters: {
|
|
1067
|
+
query?: never;
|
|
1068
|
+
header?: never;
|
|
1069
|
+
path?: never;
|
|
1070
|
+
cookie?: never;
|
|
1071
|
+
};
|
|
1072
|
+
/**
|
|
1073
|
+
* Insights recommendations — AI adoption gap by team
|
|
1074
|
+
* @description Headcount vs AI-active contributors and per-team readiness/output. `readinessPct` is the mean latest overallScore of repos with matching `teamId` (workspace mean fallback). `outputPerEngPerWeek` is team merged PRs / headcount / weeks in window. `upliftPct` estimates additional PR volume if non-adopters matched leader-team output (teams with >50% adoption).
|
|
1075
|
+
*/
|
|
1076
|
+
get: operations["getInsightsRecommendationsAdoptionGap"];
|
|
1077
|
+
put?: never;
|
|
1078
|
+
post?: never;
|
|
1079
|
+
delete?: never;
|
|
1080
|
+
options?: never;
|
|
1081
|
+
head?: never;
|
|
1082
|
+
patch?: never;
|
|
1083
|
+
trace?: never;
|
|
1084
|
+
};
|
|
1085
|
+
"/workspaces/{workspaceId}/insights/recommendations-page/recommendations": {
|
|
1086
|
+
parameters: {
|
|
1087
|
+
query?: never;
|
|
1088
|
+
header?: never;
|
|
1089
|
+
path?: never;
|
|
1090
|
+
cookie?: never;
|
|
1091
|
+
};
|
|
1092
|
+
/**
|
|
1093
|
+
* Insights recommendations — deterministic action items
|
|
1094
|
+
* @description Deterministic rules engine (no LLM). Emits module-anchored recommendations with `moduleId` in {mod-spend-vs-output, mod-velocity-vs-quality, mod-review-bottleneck, mod-cost-per-pr, mod-adoption-gap}. Action items must cite one AI metric and one delivery metric in `observed`. Evidence chips use kinds user-spend|team|contributor|repo|module with real target ids when available.
|
|
1095
|
+
*/
|
|
1096
|
+
get: operations["getInsightsRecommendationsRecommendations"];
|
|
1097
|
+
put?: never;
|
|
1098
|
+
post?: never;
|
|
1099
|
+
delete?: never;
|
|
1100
|
+
options?: never;
|
|
1101
|
+
head?: never;
|
|
1102
|
+
patch?: never;
|
|
1103
|
+
trace?: never;
|
|
1104
|
+
};
|
|
965
1105
|
"/workspaces/{workspaceId}/integrations/ai-tool/{provider}/members": {
|
|
966
1106
|
parameters: {
|
|
967
1107
|
query?: never;
|
|
@@ -4838,6 +4978,14 @@ export interface components {
|
|
|
4838
4978
|
productivityLastIngestAt?: string | null;
|
|
4839
4979
|
/** @description True while another session holds the workspace productivity ingest advisory lock. */
|
|
4840
4980
|
productivityRefreshInProgress?: boolean;
|
|
4981
|
+
/** @description Repos remaining in the staged backfill queue. */
|
|
4982
|
+
productivityIngestPendingRepoCount?: number | null;
|
|
4983
|
+
/** @description Repos benign-skipped or quarantined during backfill. */
|
|
4984
|
+
productivityIngestSkippedRepoCount?: number | null;
|
|
4985
|
+
/** @description Repos with transient failures awaiting retry in the current phase. */
|
|
4986
|
+
productivityIngestFailedRepoCount?: number | null;
|
|
4987
|
+
/** @description Percent of eligible repos with merged-PR productivity data (excludes skipped/quarantined). */
|
|
4988
|
+
productivityIngestCoveragePercent?: number | null;
|
|
4841
4989
|
};
|
|
4842
4990
|
GithubInstallUrlRequestDto: {
|
|
4843
4991
|
returnPath?: string;
|
|
@@ -5906,7 +6054,7 @@ export interface components {
|
|
|
5906
6054
|
* @description Type of workspace lifecycle event.
|
|
5907
6055
|
* @enum {string}
|
|
5908
6056
|
*/
|
|
5909
|
-
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed";
|
|
6057
|
+
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed";
|
|
5910
6058
|
ActivityLogActorDto: {
|
|
5911
6059
|
/** Format: uuid */
|
|
5912
6060
|
userId: string;
|
|
@@ -6228,6 +6376,154 @@ export interface components {
|
|
|
6228
6376
|
items: components["schemas"]["SdlcDrilldownItemDto"][];
|
|
6229
6377
|
nextCursor?: string;
|
|
6230
6378
|
};
|
|
6379
|
+
InsightsResponseMeta: {
|
|
6380
|
+
/**
|
|
6381
|
+
* Format: date-time
|
|
6382
|
+
* @description ISO timestamp when numbers were computed server-side
|
|
6383
|
+
*/
|
|
6384
|
+
syncedAt: string;
|
|
6385
|
+
/**
|
|
6386
|
+
* @description Must be false for production handlers
|
|
6387
|
+
* @enum {boolean}
|
|
6388
|
+
*/
|
|
6389
|
+
isMock: false;
|
|
6390
|
+
};
|
|
6391
|
+
/** @enum {string} */
|
|
6392
|
+
InsightsVerdictStatus: "healthy" | "watch" | "at-risk";
|
|
6393
|
+
InsightsRecommendationsVerdictSummary: {
|
|
6394
|
+
/** @description Merged-PR volume ratio vs prior equal-length window (current/prior). When priorMergedPrs is 0, value is 1.0 and productivityStatus is watch. */
|
|
6395
|
+
productivityMultiplier: number;
|
|
6396
|
+
productivityStatus: components["schemas"]["InsightsVerdictStatus"];
|
|
6397
|
+
ciFailRatePct: number;
|
|
6398
|
+
qualityStatus: components["schemas"]["InsightsVerdictStatus"];
|
|
6399
|
+
spendPerMergedPrUsd: number;
|
|
6400
|
+
spendPerMergedPrPrevUsd: number;
|
|
6401
|
+
costStatus: components["schemas"]["InsightsVerdictStatus"];
|
|
6402
|
+
};
|
|
6403
|
+
InsightsRecommendationsVerdictSummaryResponse: components["schemas"]["InsightsRecommendationsVerdictSummary"] & {
|
|
6404
|
+
_meta: components["schemas"]["InsightsResponseMeta"];
|
|
6405
|
+
};
|
|
6406
|
+
InsightsRoiEngineerPoint: {
|
|
6407
|
+
id: string;
|
|
6408
|
+
name: string;
|
|
6409
|
+
team: string;
|
|
6410
|
+
spendUsd: number;
|
|
6411
|
+
mergedPrs: number;
|
|
6412
|
+
};
|
|
6413
|
+
InsightsRecommendationsRoiQuadrant: {
|
|
6414
|
+
medianSpendUsd: number;
|
|
6415
|
+
medianMergedPrs: number;
|
|
6416
|
+
engineers: components["schemas"]["InsightsRoiEngineerPoint"][];
|
|
6417
|
+
correlationHint: string;
|
|
6418
|
+
};
|
|
6419
|
+
InsightsRecommendationsRoiQuadrantResponse: components["schemas"]["InsightsRecommendationsRoiQuadrant"] & {
|
|
6420
|
+
_meta: components["schemas"]["InsightsResponseMeta"];
|
|
6421
|
+
};
|
|
6422
|
+
InsightsVelocityQualityWeek: {
|
|
6423
|
+
/** Format: date */
|
|
6424
|
+
weekStartIso: string;
|
|
6425
|
+
mergedPrs: number;
|
|
6426
|
+
ciFailRatePct: number;
|
|
6427
|
+
};
|
|
6428
|
+
InsightsRecommendationsVelocityQuality: {
|
|
6429
|
+
weeks: components["schemas"]["InsightsVelocityQualityWeek"][];
|
|
6430
|
+
targetFailRatePct: number;
|
|
6431
|
+
volumeGrowthPct: number;
|
|
6432
|
+
};
|
|
6433
|
+
InsightsRecommendationsVelocityQualityResponse: components["schemas"]["InsightsRecommendationsVelocityQuality"] & {
|
|
6434
|
+
_meta: components["schemas"]["InsightsResponseMeta"];
|
|
6435
|
+
};
|
|
6436
|
+
/** @enum {string} */
|
|
6437
|
+
InsightsReviewStageId: "open-review" | "review-approval" | "approval-merge" | "merged";
|
|
6438
|
+
InsightsReviewStage: {
|
|
6439
|
+
id: components["schemas"]["InsightsReviewStageId"];
|
|
6440
|
+
name: string;
|
|
6441
|
+
/** @description Wait hours for funnel stages; 0 for the merged volume stage */
|
|
6442
|
+
medianHours: number;
|
|
6443
|
+
trendPct: number;
|
|
6444
|
+
};
|
|
6445
|
+
InsightsReviewerLoadItem: {
|
|
6446
|
+
id: string;
|
|
6447
|
+
name: string;
|
|
6448
|
+
reviewsCount: number;
|
|
6449
|
+
sharePct: number;
|
|
6450
|
+
};
|
|
6451
|
+
InsightsRecommendationsReviewPipeline: {
|
|
6452
|
+
stages: components["schemas"]["InsightsReviewStage"][];
|
|
6453
|
+
bottleneckStageId: components["schemas"]["InsightsReviewStageId"];
|
|
6454
|
+
reviewerLoad: components["schemas"]["InsightsReviewerLoadItem"][];
|
|
6455
|
+
};
|
|
6456
|
+
InsightsRecommendationsReviewPipelineResponse: components["schemas"]["InsightsRecommendationsReviewPipeline"] & {
|
|
6457
|
+
_meta: components["schemas"]["InsightsResponseMeta"];
|
|
6458
|
+
};
|
|
6459
|
+
InsightsCostPerPrTeam: {
|
|
6460
|
+
id: string;
|
|
6461
|
+
name: string;
|
|
6462
|
+
activeAi: number;
|
|
6463
|
+
spendUsd: number;
|
|
6464
|
+
mergedPrs: number;
|
|
6465
|
+
costPerPrUsd: number;
|
|
6466
|
+
changePct: number;
|
|
6467
|
+
};
|
|
6468
|
+
InsightsRecommendationsCostPerPr: {
|
|
6469
|
+
orgAvgCostUsd: number;
|
|
6470
|
+
orgAvgPrevUsd: number;
|
|
6471
|
+
teams: components["schemas"]["InsightsCostPerPrTeam"][];
|
|
6472
|
+
};
|
|
6473
|
+
InsightsRecommendationsCostPerPrResponse: components["schemas"]["InsightsRecommendationsCostPerPr"] & {
|
|
6474
|
+
_meta: components["schemas"]["InsightsResponseMeta"];
|
|
6475
|
+
};
|
|
6476
|
+
InsightsAdoptionTeam: {
|
|
6477
|
+
id: string;
|
|
6478
|
+
name: string;
|
|
6479
|
+
activeAi: number;
|
|
6480
|
+
totalMembers: number;
|
|
6481
|
+
readinessPct: number;
|
|
6482
|
+
outputPerEngPerWeek: number;
|
|
6483
|
+
};
|
|
6484
|
+
InsightsRecommendationsAdoptionGap: {
|
|
6485
|
+
totalContributors: number;
|
|
6486
|
+
activeContributors: number;
|
|
6487
|
+
upliftPct: number;
|
|
6488
|
+
teams: components["schemas"]["InsightsAdoptionTeam"][];
|
|
6489
|
+
};
|
|
6490
|
+
InsightsRecommendationsAdoptionGapResponse: components["schemas"]["InsightsRecommendationsAdoptionGap"] & {
|
|
6491
|
+
_meta: components["schemas"]["InsightsResponseMeta"];
|
|
6492
|
+
};
|
|
6493
|
+
/** @enum {string} */
|
|
6494
|
+
InsightsRecommendationModuleId: "mod-spend-vs-output" | "mod-velocity-vs-quality" | "mod-review-bottleneck" | "mod-cost-per-pr" | "mod-adoption-gap";
|
|
6495
|
+
/** @enum {string} */
|
|
6496
|
+
InsightsRecommendationImpact: "high" | "medium";
|
|
6497
|
+
/** @enum {string} */
|
|
6498
|
+
InsightsRecommendationTone: "action" | "no-action";
|
|
6499
|
+
/** @enum {string} */
|
|
6500
|
+
InsightsEvidenceLinkKind: "user-spend" | "team" | "contributor" | "repo" | "module";
|
|
6501
|
+
InsightsEvidenceChip: {
|
|
6502
|
+
label: string;
|
|
6503
|
+
kind: components["schemas"]["InsightsEvidenceLinkKind"];
|
|
6504
|
+
targetId: string;
|
|
6505
|
+
};
|
|
6506
|
+
InsightsRecommendationEvidenceGroup: {
|
|
6507
|
+
title: string;
|
|
6508
|
+
chips: components["schemas"]["InsightsEvidenceChip"][];
|
|
6509
|
+
};
|
|
6510
|
+
InsightsRecommendationDto: {
|
|
6511
|
+
moduleId: components["schemas"]["InsightsRecommendationModuleId"];
|
|
6512
|
+
moduleName: string;
|
|
6513
|
+
tone: components["schemas"]["InsightsRecommendationTone"];
|
|
6514
|
+
impact: components["schemas"]["InsightsRecommendationImpact"];
|
|
6515
|
+
headline: string;
|
|
6516
|
+
/** @description For tone=action must cite one AI metric and one delivery metric */
|
|
6517
|
+
observed: string;
|
|
6518
|
+
action: string;
|
|
6519
|
+
benefit: string;
|
|
6520
|
+
confidencePct: number;
|
|
6521
|
+
evidence: components["schemas"]["InsightsRecommendationEvidenceGroup"][];
|
|
6522
|
+
};
|
|
6523
|
+
InsightsRecommendationsListResponse: {
|
|
6524
|
+
items: components["schemas"]["InsightsRecommendationDto"][];
|
|
6525
|
+
_meta: components["schemas"]["InsightsResponseMeta"];
|
|
6526
|
+
};
|
|
6231
6527
|
};
|
|
6232
6528
|
responses: {
|
|
6233
6529
|
/** @description Missing or invalid bearer token */
|
|
@@ -6285,6 +6581,20 @@ export interface components {
|
|
|
6285
6581
|
InsightsSdlcRangeId: string;
|
|
6286
6582
|
/** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
|
|
6287
6583
|
InsightsDepartmentFilter: string;
|
|
6584
|
+
/** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
|
|
6585
|
+
InsightsRecommendationsDepartments: string[];
|
|
6586
|
+
/** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
|
|
6587
|
+
InsightsRecommendationsTeams: string[];
|
|
6588
|
+
/** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
|
|
6589
|
+
InsightsRecommendationsDateFrom: string;
|
|
6590
|
+
/** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
|
|
6591
|
+
InsightsRecommendationsDateTo: string;
|
|
6592
|
+
/** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
|
|
6593
|
+
InsightsRecommendationsProvider: string[];
|
|
6594
|
+
/** @description Include contributors / AI rows not mapped to a team. */
|
|
6595
|
+
InsightsRecommendationsIncludeUnmapped: boolean;
|
|
6596
|
+
/** @description Include bot accounts in PR/CI stats. */
|
|
6597
|
+
InsightsRecommendationsIncludeBots: boolean;
|
|
6288
6598
|
/** @description Page size (default 25, max 100). */
|
|
6289
6599
|
PaginationLimit: number;
|
|
6290
6600
|
/** @description Zero-based row offset into the filtered, sorted result set. */
|
|
@@ -6621,6 +6931,35 @@ export type SdlcModuleDto = components['schemas']['SdlcModuleDto'];
|
|
|
6621
6931
|
export type SdlcOverviewDto = components['schemas']['SdlcOverviewDto'];
|
|
6622
6932
|
export type SdlcDrilldownItemDto = components['schemas']['SdlcDrilldownItemDto'];
|
|
6623
6933
|
export type SdlcDrilldownDto = components['schemas']['SdlcDrilldownDto'];
|
|
6934
|
+
export type InsightsResponseMeta = components['schemas']['InsightsResponseMeta'];
|
|
6935
|
+
export type InsightsVerdictStatus = components['schemas']['InsightsVerdictStatus'];
|
|
6936
|
+
export type InsightsRecommendationsVerdictSummary = components['schemas']['InsightsRecommendationsVerdictSummary'];
|
|
6937
|
+
export type InsightsRecommendationsVerdictSummaryResponse = components['schemas']['InsightsRecommendationsVerdictSummaryResponse'];
|
|
6938
|
+
export type InsightsRoiEngineerPoint = components['schemas']['InsightsRoiEngineerPoint'];
|
|
6939
|
+
export type InsightsRecommendationsRoiQuadrant = components['schemas']['InsightsRecommendationsRoiQuadrant'];
|
|
6940
|
+
export type InsightsRecommendationsRoiQuadrantResponse = components['schemas']['InsightsRecommendationsRoiQuadrantResponse'];
|
|
6941
|
+
export type InsightsVelocityQualityWeek = components['schemas']['InsightsVelocityQualityWeek'];
|
|
6942
|
+
export type InsightsRecommendationsVelocityQuality = components['schemas']['InsightsRecommendationsVelocityQuality'];
|
|
6943
|
+
export type InsightsRecommendationsVelocityQualityResponse = components['schemas']['InsightsRecommendationsVelocityQualityResponse'];
|
|
6944
|
+
export type InsightsReviewStageId = components['schemas']['InsightsReviewStageId'];
|
|
6945
|
+
export type InsightsReviewStage = components['schemas']['InsightsReviewStage'];
|
|
6946
|
+
export type InsightsReviewerLoadItem = components['schemas']['InsightsReviewerLoadItem'];
|
|
6947
|
+
export type InsightsRecommendationsReviewPipeline = components['schemas']['InsightsRecommendationsReviewPipeline'];
|
|
6948
|
+
export type InsightsRecommendationsReviewPipelineResponse = components['schemas']['InsightsRecommendationsReviewPipelineResponse'];
|
|
6949
|
+
export type InsightsCostPerPrTeam = components['schemas']['InsightsCostPerPrTeam'];
|
|
6950
|
+
export type InsightsRecommendationsCostPerPr = components['schemas']['InsightsRecommendationsCostPerPr'];
|
|
6951
|
+
export type InsightsRecommendationsCostPerPrResponse = components['schemas']['InsightsRecommendationsCostPerPrResponse'];
|
|
6952
|
+
export type InsightsAdoptionTeam = components['schemas']['InsightsAdoptionTeam'];
|
|
6953
|
+
export type InsightsRecommendationsAdoptionGap = components['schemas']['InsightsRecommendationsAdoptionGap'];
|
|
6954
|
+
export type InsightsRecommendationsAdoptionGapResponse = components['schemas']['InsightsRecommendationsAdoptionGapResponse'];
|
|
6955
|
+
export type InsightsRecommendationModuleId = components['schemas']['InsightsRecommendationModuleId'];
|
|
6956
|
+
export type InsightsRecommendationImpact = components['schemas']['InsightsRecommendationImpact'];
|
|
6957
|
+
export type InsightsRecommendationTone = components['schemas']['InsightsRecommendationTone'];
|
|
6958
|
+
export type InsightsEvidenceLinkKind = components['schemas']['InsightsEvidenceLinkKind'];
|
|
6959
|
+
export type InsightsEvidenceChip = components['schemas']['InsightsEvidenceChip'];
|
|
6960
|
+
export type InsightsRecommendationEvidenceGroup = components['schemas']['InsightsRecommendationEvidenceGroup'];
|
|
6961
|
+
export type InsightsRecommendationDto = components['schemas']['InsightsRecommendationDto'];
|
|
6962
|
+
export type InsightsRecommendationsListResponse = components['schemas']['InsightsRecommendationsListResponse'];
|
|
6624
6963
|
export type ResponseUnauthorized = components['responses']['Unauthorized'];
|
|
6625
6964
|
export type ResponseForbidden = components['responses']['Forbidden'];
|
|
6626
6965
|
export type ResponseZenHrSyncInProgress = components['responses']['ZenHrSyncInProgress'];
|
|
@@ -6637,6 +6976,13 @@ export type ParameterInsightsProductivityFrom = components['parameters']['Insigh
|
|
|
6637
6976
|
export type ParameterInsightsProductivityTo = components['parameters']['InsightsProductivityTo'];
|
|
6638
6977
|
export type ParameterInsightsSdlcRangeId = components['parameters']['InsightsSdlcRangeId'];
|
|
6639
6978
|
export type ParameterInsightsDepartmentFilter = components['parameters']['InsightsDepartmentFilter'];
|
|
6979
|
+
export type ParameterInsightsRecommendationsDepartments = components['parameters']['InsightsRecommendationsDepartments'];
|
|
6980
|
+
export type ParameterInsightsRecommendationsTeams = components['parameters']['InsightsRecommendationsTeams'];
|
|
6981
|
+
export type ParameterInsightsRecommendationsDateFrom = components['parameters']['InsightsRecommendationsDateFrom'];
|
|
6982
|
+
export type ParameterInsightsRecommendationsDateTo = components['parameters']['InsightsRecommendationsDateTo'];
|
|
6983
|
+
export type ParameterInsightsRecommendationsProvider = components['parameters']['InsightsRecommendationsProvider'];
|
|
6984
|
+
export type ParameterInsightsRecommendationsIncludeUnmapped = components['parameters']['InsightsRecommendationsIncludeUnmapped'];
|
|
6985
|
+
export type ParameterInsightsRecommendationsIncludeBots = components['parameters']['InsightsRecommendationsIncludeBots'];
|
|
6640
6986
|
export type ParameterPaginationLimit = components['parameters']['PaginationLimit'];
|
|
6641
6987
|
export type ParameterPaginationOffset = components['parameters']['PaginationOffset'];
|
|
6642
6988
|
export type ParameterPaginationOrder = components['parameters']['PaginationOrder'];
|
|
@@ -9334,6 +9680,412 @@ export interface operations {
|
|
|
9334
9680
|
};
|
|
9335
9681
|
};
|
|
9336
9682
|
};
|
|
9683
|
+
getInsightsRecommendationsVerdictSummary: {
|
|
9684
|
+
parameters: {
|
|
9685
|
+
query: {
|
|
9686
|
+
/** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
|
|
9687
|
+
departments?: components["parameters"]["InsightsRecommendationsDepartments"];
|
|
9688
|
+
/** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
|
|
9689
|
+
teams?: components["parameters"]["InsightsRecommendationsTeams"];
|
|
9690
|
+
/** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
|
|
9691
|
+
dateFrom: components["parameters"]["InsightsRecommendationsDateFrom"];
|
|
9692
|
+
/** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
|
|
9693
|
+
dateTo: components["parameters"]["InsightsRecommendationsDateTo"];
|
|
9694
|
+
/** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
|
|
9695
|
+
provider?: components["parameters"]["InsightsRecommendationsProvider"];
|
|
9696
|
+
/** @description Include contributors / AI rows not mapped to a team. */
|
|
9697
|
+
includeUnmapped?: components["parameters"]["InsightsRecommendationsIncludeUnmapped"];
|
|
9698
|
+
/** @description Include bot accounts in PR/CI stats. */
|
|
9699
|
+
includeBots?: components["parameters"]["InsightsRecommendationsIncludeBots"];
|
|
9700
|
+
};
|
|
9701
|
+
header?: never;
|
|
9702
|
+
path: {
|
|
9703
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
9704
|
+
};
|
|
9705
|
+
cookie?: never;
|
|
9706
|
+
};
|
|
9707
|
+
requestBody?: never;
|
|
9708
|
+
responses: {
|
|
9709
|
+
/** @description Verdict summary with `_meta.isMock=false` */
|
|
9710
|
+
200: {
|
|
9711
|
+
headers: {
|
|
9712
|
+
[name: string]: unknown;
|
|
9713
|
+
};
|
|
9714
|
+
content: {
|
|
9715
|
+
"application/json": components["schemas"]["InsightsRecommendationsVerdictSummaryResponse"];
|
|
9716
|
+
};
|
|
9717
|
+
};
|
|
9718
|
+
/** @description Invalid filter or date range */
|
|
9719
|
+
400: {
|
|
9720
|
+
headers: {
|
|
9721
|
+
[name: string]: unknown;
|
|
9722
|
+
};
|
|
9723
|
+
content: {
|
|
9724
|
+
"application/json": {
|
|
9725
|
+
/** @example invalid_query */
|
|
9726
|
+
error: string;
|
|
9727
|
+
};
|
|
9728
|
+
};
|
|
9729
|
+
};
|
|
9730
|
+
401: components["responses"]["Unauthorized"];
|
|
9731
|
+
403: components["responses"]["Forbidden"];
|
|
9732
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
9733
|
+
404: {
|
|
9734
|
+
headers: {
|
|
9735
|
+
[name: string]: unknown;
|
|
9736
|
+
};
|
|
9737
|
+
content?: never;
|
|
9738
|
+
};
|
|
9739
|
+
};
|
|
9740
|
+
};
|
|
9741
|
+
getInsightsRecommendationsRoiQuadrant: {
|
|
9742
|
+
parameters: {
|
|
9743
|
+
query: {
|
|
9744
|
+
/** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
|
|
9745
|
+
departments?: components["parameters"]["InsightsRecommendationsDepartments"];
|
|
9746
|
+
/** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
|
|
9747
|
+
teams?: components["parameters"]["InsightsRecommendationsTeams"];
|
|
9748
|
+
/** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
|
|
9749
|
+
dateFrom: components["parameters"]["InsightsRecommendationsDateFrom"];
|
|
9750
|
+
/** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
|
|
9751
|
+
dateTo: components["parameters"]["InsightsRecommendationsDateTo"];
|
|
9752
|
+
/** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
|
|
9753
|
+
provider?: components["parameters"]["InsightsRecommendationsProvider"];
|
|
9754
|
+
/** @description Include contributors / AI rows not mapped to a team. */
|
|
9755
|
+
includeUnmapped?: components["parameters"]["InsightsRecommendationsIncludeUnmapped"];
|
|
9756
|
+
/** @description Include bot accounts in PR/CI stats. */
|
|
9757
|
+
includeBots?: components["parameters"]["InsightsRecommendationsIncludeBots"];
|
|
9758
|
+
};
|
|
9759
|
+
header?: never;
|
|
9760
|
+
path: {
|
|
9761
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
9762
|
+
};
|
|
9763
|
+
cookie?: never;
|
|
9764
|
+
};
|
|
9765
|
+
requestBody?: never;
|
|
9766
|
+
responses: {
|
|
9767
|
+
/** @description ROI quadrant payload */
|
|
9768
|
+
200: {
|
|
9769
|
+
headers: {
|
|
9770
|
+
[name: string]: unknown;
|
|
9771
|
+
};
|
|
9772
|
+
content: {
|
|
9773
|
+
"application/json": components["schemas"]["InsightsRecommendationsRoiQuadrantResponse"];
|
|
9774
|
+
};
|
|
9775
|
+
};
|
|
9776
|
+
/** @description Invalid filter or date range */
|
|
9777
|
+
400: {
|
|
9778
|
+
headers: {
|
|
9779
|
+
[name: string]: unknown;
|
|
9780
|
+
};
|
|
9781
|
+
content: {
|
|
9782
|
+
"application/json": {
|
|
9783
|
+
/** @example invalid_query */
|
|
9784
|
+
error: string;
|
|
9785
|
+
};
|
|
9786
|
+
};
|
|
9787
|
+
};
|
|
9788
|
+
401: components["responses"]["Unauthorized"];
|
|
9789
|
+
403: components["responses"]["Forbidden"];
|
|
9790
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
9791
|
+
404: {
|
|
9792
|
+
headers: {
|
|
9793
|
+
[name: string]: unknown;
|
|
9794
|
+
};
|
|
9795
|
+
content?: never;
|
|
9796
|
+
};
|
|
9797
|
+
};
|
|
9798
|
+
};
|
|
9799
|
+
getInsightsRecommendationsVelocityQuality: {
|
|
9800
|
+
parameters: {
|
|
9801
|
+
query: {
|
|
9802
|
+
/** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
|
|
9803
|
+
departments?: components["parameters"]["InsightsRecommendationsDepartments"];
|
|
9804
|
+
/** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
|
|
9805
|
+
teams?: components["parameters"]["InsightsRecommendationsTeams"];
|
|
9806
|
+
/** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
|
|
9807
|
+
dateFrom: components["parameters"]["InsightsRecommendationsDateFrom"];
|
|
9808
|
+
/** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
|
|
9809
|
+
dateTo: components["parameters"]["InsightsRecommendationsDateTo"];
|
|
9810
|
+
/** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
|
|
9811
|
+
provider?: components["parameters"]["InsightsRecommendationsProvider"];
|
|
9812
|
+
/** @description Include contributors / AI rows not mapped to a team. */
|
|
9813
|
+
includeUnmapped?: components["parameters"]["InsightsRecommendationsIncludeUnmapped"];
|
|
9814
|
+
/** @description Include bot accounts in PR/CI stats. */
|
|
9815
|
+
includeBots?: components["parameters"]["InsightsRecommendationsIncludeBots"];
|
|
9816
|
+
};
|
|
9817
|
+
header?: never;
|
|
9818
|
+
path: {
|
|
9819
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
9820
|
+
};
|
|
9821
|
+
cookie?: never;
|
|
9822
|
+
};
|
|
9823
|
+
requestBody?: never;
|
|
9824
|
+
responses: {
|
|
9825
|
+
/** @description Velocity vs quality payload */
|
|
9826
|
+
200: {
|
|
9827
|
+
headers: {
|
|
9828
|
+
[name: string]: unknown;
|
|
9829
|
+
};
|
|
9830
|
+
content: {
|
|
9831
|
+
"application/json": components["schemas"]["InsightsRecommendationsVelocityQualityResponse"];
|
|
9832
|
+
};
|
|
9833
|
+
};
|
|
9834
|
+
/** @description Invalid filter or date range */
|
|
9835
|
+
400: {
|
|
9836
|
+
headers: {
|
|
9837
|
+
[name: string]: unknown;
|
|
9838
|
+
};
|
|
9839
|
+
content: {
|
|
9840
|
+
"application/json": {
|
|
9841
|
+
/** @example invalid_query */
|
|
9842
|
+
error: string;
|
|
9843
|
+
};
|
|
9844
|
+
};
|
|
9845
|
+
};
|
|
9846
|
+
401: components["responses"]["Unauthorized"];
|
|
9847
|
+
403: components["responses"]["Forbidden"];
|
|
9848
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
9849
|
+
404: {
|
|
9850
|
+
headers: {
|
|
9851
|
+
[name: string]: unknown;
|
|
9852
|
+
};
|
|
9853
|
+
content?: never;
|
|
9854
|
+
};
|
|
9855
|
+
};
|
|
9856
|
+
};
|
|
9857
|
+
getInsightsRecommendationsReviewPipeline: {
|
|
9858
|
+
parameters: {
|
|
9859
|
+
query: {
|
|
9860
|
+
/** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
|
|
9861
|
+
departments?: components["parameters"]["InsightsRecommendationsDepartments"];
|
|
9862
|
+
/** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
|
|
9863
|
+
teams?: components["parameters"]["InsightsRecommendationsTeams"];
|
|
9864
|
+
/** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
|
|
9865
|
+
dateFrom: components["parameters"]["InsightsRecommendationsDateFrom"];
|
|
9866
|
+
/** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
|
|
9867
|
+
dateTo: components["parameters"]["InsightsRecommendationsDateTo"];
|
|
9868
|
+
/** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
|
|
9869
|
+
provider?: components["parameters"]["InsightsRecommendationsProvider"];
|
|
9870
|
+
/** @description Include contributors / AI rows not mapped to a team. */
|
|
9871
|
+
includeUnmapped?: components["parameters"]["InsightsRecommendationsIncludeUnmapped"];
|
|
9872
|
+
/** @description Include bot accounts in PR/CI stats. */
|
|
9873
|
+
includeBots?: components["parameters"]["InsightsRecommendationsIncludeBots"];
|
|
9874
|
+
};
|
|
9875
|
+
header?: never;
|
|
9876
|
+
path: {
|
|
9877
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
9878
|
+
};
|
|
9879
|
+
cookie?: never;
|
|
9880
|
+
};
|
|
9881
|
+
requestBody?: never;
|
|
9882
|
+
responses: {
|
|
9883
|
+
/** @description Review pipeline payload */
|
|
9884
|
+
200: {
|
|
9885
|
+
headers: {
|
|
9886
|
+
[name: string]: unknown;
|
|
9887
|
+
};
|
|
9888
|
+
content: {
|
|
9889
|
+
"application/json": components["schemas"]["InsightsRecommendationsReviewPipelineResponse"];
|
|
9890
|
+
};
|
|
9891
|
+
};
|
|
9892
|
+
/** @description Invalid filter or date range */
|
|
9893
|
+
400: {
|
|
9894
|
+
headers: {
|
|
9895
|
+
[name: string]: unknown;
|
|
9896
|
+
};
|
|
9897
|
+
content: {
|
|
9898
|
+
"application/json": {
|
|
9899
|
+
/** @example invalid_query */
|
|
9900
|
+
error: string;
|
|
9901
|
+
};
|
|
9902
|
+
};
|
|
9903
|
+
};
|
|
9904
|
+
401: components["responses"]["Unauthorized"];
|
|
9905
|
+
403: components["responses"]["Forbidden"];
|
|
9906
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
9907
|
+
404: {
|
|
9908
|
+
headers: {
|
|
9909
|
+
[name: string]: unknown;
|
|
9910
|
+
};
|
|
9911
|
+
content?: never;
|
|
9912
|
+
};
|
|
9913
|
+
};
|
|
9914
|
+
};
|
|
9915
|
+
getInsightsRecommendationsCostPerPr: {
|
|
9916
|
+
parameters: {
|
|
9917
|
+
query: {
|
|
9918
|
+
/** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
|
|
9919
|
+
departments?: components["parameters"]["InsightsRecommendationsDepartments"];
|
|
9920
|
+
/** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
|
|
9921
|
+
teams?: components["parameters"]["InsightsRecommendationsTeams"];
|
|
9922
|
+
/** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
|
|
9923
|
+
dateFrom: components["parameters"]["InsightsRecommendationsDateFrom"];
|
|
9924
|
+
/** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
|
|
9925
|
+
dateTo: components["parameters"]["InsightsRecommendationsDateTo"];
|
|
9926
|
+
/** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
|
|
9927
|
+
provider?: components["parameters"]["InsightsRecommendationsProvider"];
|
|
9928
|
+
/** @description Include contributors / AI rows not mapped to a team. */
|
|
9929
|
+
includeUnmapped?: components["parameters"]["InsightsRecommendationsIncludeUnmapped"];
|
|
9930
|
+
/** @description Include bot accounts in PR/CI stats. */
|
|
9931
|
+
includeBots?: components["parameters"]["InsightsRecommendationsIncludeBots"];
|
|
9932
|
+
};
|
|
9933
|
+
header?: never;
|
|
9934
|
+
path: {
|
|
9935
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
9936
|
+
};
|
|
9937
|
+
cookie?: never;
|
|
9938
|
+
};
|
|
9939
|
+
requestBody?: never;
|
|
9940
|
+
responses: {
|
|
9941
|
+
/** @description Cost per PR payload */
|
|
9942
|
+
200: {
|
|
9943
|
+
headers: {
|
|
9944
|
+
[name: string]: unknown;
|
|
9945
|
+
};
|
|
9946
|
+
content: {
|
|
9947
|
+
"application/json": components["schemas"]["InsightsRecommendationsCostPerPrResponse"];
|
|
9948
|
+
};
|
|
9949
|
+
};
|
|
9950
|
+
/** @description Invalid filter or date range */
|
|
9951
|
+
400: {
|
|
9952
|
+
headers: {
|
|
9953
|
+
[name: string]: unknown;
|
|
9954
|
+
};
|
|
9955
|
+
content: {
|
|
9956
|
+
"application/json": {
|
|
9957
|
+
/** @example invalid_query */
|
|
9958
|
+
error: string;
|
|
9959
|
+
};
|
|
9960
|
+
};
|
|
9961
|
+
};
|
|
9962
|
+
401: components["responses"]["Unauthorized"];
|
|
9963
|
+
403: components["responses"]["Forbidden"];
|
|
9964
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
9965
|
+
404: {
|
|
9966
|
+
headers: {
|
|
9967
|
+
[name: string]: unknown;
|
|
9968
|
+
};
|
|
9969
|
+
content?: never;
|
|
9970
|
+
};
|
|
9971
|
+
};
|
|
9972
|
+
};
|
|
9973
|
+
getInsightsRecommendationsAdoptionGap: {
|
|
9974
|
+
parameters: {
|
|
9975
|
+
query: {
|
|
9976
|
+
/** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
|
|
9977
|
+
departments?: components["parameters"]["InsightsRecommendationsDepartments"];
|
|
9978
|
+
/** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
|
|
9979
|
+
teams?: components["parameters"]["InsightsRecommendationsTeams"];
|
|
9980
|
+
/** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
|
|
9981
|
+
dateFrom: components["parameters"]["InsightsRecommendationsDateFrom"];
|
|
9982
|
+
/** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
|
|
9983
|
+
dateTo: components["parameters"]["InsightsRecommendationsDateTo"];
|
|
9984
|
+
/** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
|
|
9985
|
+
provider?: components["parameters"]["InsightsRecommendationsProvider"];
|
|
9986
|
+
/** @description Include contributors / AI rows not mapped to a team. */
|
|
9987
|
+
includeUnmapped?: components["parameters"]["InsightsRecommendationsIncludeUnmapped"];
|
|
9988
|
+
/** @description Include bot accounts in PR/CI stats. */
|
|
9989
|
+
includeBots?: components["parameters"]["InsightsRecommendationsIncludeBots"];
|
|
9990
|
+
};
|
|
9991
|
+
header?: never;
|
|
9992
|
+
path: {
|
|
9993
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
9994
|
+
};
|
|
9995
|
+
cookie?: never;
|
|
9996
|
+
};
|
|
9997
|
+
requestBody?: never;
|
|
9998
|
+
responses: {
|
|
9999
|
+
/** @description Adoption gap payload */
|
|
10000
|
+
200: {
|
|
10001
|
+
headers: {
|
|
10002
|
+
[name: string]: unknown;
|
|
10003
|
+
};
|
|
10004
|
+
content: {
|
|
10005
|
+
"application/json": components["schemas"]["InsightsRecommendationsAdoptionGapResponse"];
|
|
10006
|
+
};
|
|
10007
|
+
};
|
|
10008
|
+
/** @description Invalid filter or date range */
|
|
10009
|
+
400: {
|
|
10010
|
+
headers: {
|
|
10011
|
+
[name: string]: unknown;
|
|
10012
|
+
};
|
|
10013
|
+
content: {
|
|
10014
|
+
"application/json": {
|
|
10015
|
+
/** @example invalid_query */
|
|
10016
|
+
error: string;
|
|
10017
|
+
};
|
|
10018
|
+
};
|
|
10019
|
+
};
|
|
10020
|
+
401: components["responses"]["Unauthorized"];
|
|
10021
|
+
403: components["responses"]["Forbidden"];
|
|
10022
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
10023
|
+
404: {
|
|
10024
|
+
headers: {
|
|
10025
|
+
[name: string]: unknown;
|
|
10026
|
+
};
|
|
10027
|
+
content?: never;
|
|
10028
|
+
};
|
|
10029
|
+
};
|
|
10030
|
+
};
|
|
10031
|
+
getInsightsRecommendationsRecommendations: {
|
|
10032
|
+
parameters: {
|
|
10033
|
+
query: {
|
|
10034
|
+
/** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
|
|
10035
|
+
departments?: components["parameters"]["InsightsRecommendationsDepartments"];
|
|
10036
|
+
/** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
|
|
10037
|
+
teams?: components["parameters"]["InsightsRecommendationsTeams"];
|
|
10038
|
+
/** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
|
|
10039
|
+
dateFrom: components["parameters"]["InsightsRecommendationsDateFrom"];
|
|
10040
|
+
/** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
|
|
10041
|
+
dateTo: components["parameters"]["InsightsRecommendationsDateTo"];
|
|
10042
|
+
/** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
|
|
10043
|
+
provider?: components["parameters"]["InsightsRecommendationsProvider"];
|
|
10044
|
+
/** @description Include contributors / AI rows not mapped to a team. */
|
|
10045
|
+
includeUnmapped?: components["parameters"]["InsightsRecommendationsIncludeUnmapped"];
|
|
10046
|
+
/** @description Include bot accounts in PR/CI stats. */
|
|
10047
|
+
includeBots?: components["parameters"]["InsightsRecommendationsIncludeBots"];
|
|
10048
|
+
};
|
|
10049
|
+
header?: never;
|
|
10050
|
+
path: {
|
|
10051
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
10052
|
+
};
|
|
10053
|
+
cookie?: never;
|
|
10054
|
+
};
|
|
10055
|
+
requestBody?: never;
|
|
10056
|
+
responses: {
|
|
10057
|
+
/** @description Recommendation items */
|
|
10058
|
+
200: {
|
|
10059
|
+
headers: {
|
|
10060
|
+
[name: string]: unknown;
|
|
10061
|
+
};
|
|
10062
|
+
content: {
|
|
10063
|
+
"application/json": components["schemas"]["InsightsRecommendationsListResponse"];
|
|
10064
|
+
};
|
|
10065
|
+
};
|
|
10066
|
+
/** @description Invalid filter or date range */
|
|
10067
|
+
400: {
|
|
10068
|
+
headers: {
|
|
10069
|
+
[name: string]: unknown;
|
|
10070
|
+
};
|
|
10071
|
+
content: {
|
|
10072
|
+
"application/json": {
|
|
10073
|
+
/** @example invalid_query */
|
|
10074
|
+
error: string;
|
|
10075
|
+
};
|
|
10076
|
+
};
|
|
10077
|
+
};
|
|
10078
|
+
401: components["responses"]["Unauthorized"];
|
|
10079
|
+
403: components["responses"]["Forbidden"];
|
|
10080
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
10081
|
+
404: {
|
|
10082
|
+
headers: {
|
|
10083
|
+
[name: string]: unknown;
|
|
10084
|
+
};
|
|
10085
|
+
content?: never;
|
|
10086
|
+
};
|
|
10087
|
+
};
|
|
10088
|
+
};
|
|
9337
10089
|
getAiToolMembers: {
|
|
9338
10090
|
parameters: {
|
|
9339
10091
|
query?: {
|