@thinkai/tai-api-contract 2.61.0 → 2.63.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.
@@ -922,6 +922,46 @@ export interface paths {
922
922
  patch?: never;
923
923
  trace?: never;
924
924
  };
925
+ "/workspaces/{workspaceId}/insights/sdlc/overview": {
926
+ parameters: {
927
+ query?: never;
928
+ header?: never;
929
+ path?: never;
930
+ cookie?: never;
931
+ };
932
+ /**
933
+ * SDLC insights — Engineering Health overview
934
+ * @description Engineering Health dashboard for `/insights/sdlc/overview`. Returns precomputed DORA, CI, collaboration, security, governance, and operational metrics aggregated at calendar-day granularity for the selected window. Filter params mirror other Measure insights routes plus optional `repoIds` scope.
935
+ */
936
+ get: operations["getSdlcInsightsOverview"];
937
+ put?: never;
938
+ post?: never;
939
+ delete?: never;
940
+ options?: never;
941
+ head?: never;
942
+ patch?: never;
943
+ trace?: never;
944
+ };
945
+ "/workspaces/{workspaceId}/insights/sdlc/drilldown/{metricId}": {
946
+ parameters: {
947
+ query?: never;
948
+ header?: never;
949
+ path?: never;
950
+ cookie?: never;
951
+ };
952
+ /**
953
+ * SDLC insights — metric drill-down entities
954
+ * @description Paginated entity list for a single Engineering Health metric (failed workflow runs, PRs, alerts, etc.). Available only when the overview marks `drilldownAvailable: true`.
955
+ */
956
+ get: operations["getSdlcInsightsDrilldown"];
957
+ put?: never;
958
+ post?: never;
959
+ delete?: never;
960
+ options?: never;
961
+ head?: never;
962
+ patch?: never;
963
+ trace?: never;
964
+ };
925
965
  "/workspaces/{workspaceId}/integrations/ai-tool/{provider}/members": {
926
966
  parameters: {
927
967
  query?: never;
@@ -1038,7 +1078,7 @@ export interface paths {
1038
1078
  put?: never;
1039
1079
  /**
1040
1080
  * Create GitHub App installation URL
1041
- * @description Creates a GitHub App installation URL scoped to the workspace and caller. Body is optional; when omitted, defaults to `/onboarding/integrations` return path. Optional `pickerSession` (from user OAuth org picker) recovers `returnPath` from the server-side picker snapshot when the multi-hop authorize→install flow should return to the page where OAuth started.
1081
+ * @description Creates a GitHub App installation URL scoped to the workspace and caller. Default intent `connect` installs ThinkAI Platform Insights (read). Intent `enable_fixes` installs ThinkAI Platform Automations (write) for the Insights installation identified by `installationId`. Body is optional; when omitted, defaults to `/onboarding/integrations` return path. Optional `pickerSession` (from user OAuth org picker) recovers `returnPath` from the server-side picker snapshot when the multi-hop authorize→install flow should return to the page where OAuth started.
1042
1082
  */
1043
1083
  post: operations["postGithubInstallUrl"];
1044
1084
  delete?: never;
@@ -1047,6 +1087,46 @@ export interface paths {
1047
1087
  patch?: never;
1048
1088
  trace?: never;
1049
1089
  };
1090
+ "/workspaces/{workspaceId}/integrations/github/installations/{installationId}/automated-fixes/enable": {
1091
+ parameters: {
1092
+ query?: never;
1093
+ header?: never;
1094
+ path?: never;
1095
+ cookie?: never;
1096
+ };
1097
+ get?: never;
1098
+ put?: never;
1099
+ /**
1100
+ * Enable automated fixes for a GitHub installation
1101
+ * @description Workspace-level enable for automated fixes on an Insights (read) installation. If an Automations (write) installation is already linked, flips `automatedFixesEnabled` without reinstalling. Otherwise returns `outcome: needs_install` so the client can call install-url with intent=enable_fixes.
1102
+ */
1103
+ post: operations["postGithubAutomatedFixesEnable"];
1104
+ delete?: never;
1105
+ options?: never;
1106
+ head?: never;
1107
+ patch?: never;
1108
+ trace?: never;
1109
+ };
1110
+ "/workspaces/{workspaceId}/integrations/github/installations/{installationId}/automated-fixes": {
1111
+ parameters: {
1112
+ query?: never;
1113
+ header?: never;
1114
+ path?: never;
1115
+ cookie?: never;
1116
+ };
1117
+ get?: never;
1118
+ put?: never;
1119
+ post?: never;
1120
+ /**
1121
+ * Disable automated fixes for a GitHub installation
1122
+ * @description Workspace-level disable. Clears `automatedFixesEnabled` but keeps the linked Automations write installation id so re-enable does not require reinstall. Does not uninstall the Automations app from GitHub.
1123
+ */
1124
+ delete: operations["deleteGithubAutomatedFixes"];
1125
+ options?: never;
1126
+ head?: never;
1127
+ patch?: never;
1128
+ trace?: never;
1129
+ };
1050
1130
  "/workspaces/{workspaceId}/integrations/github/user-authorize-url": {
1051
1131
  parameters: {
1052
1132
  query?: never;
@@ -2465,6 +2545,26 @@ export interface paths {
2465
2545
  patch?: never;
2466
2546
  trace?: never;
2467
2547
  };
2548
+ "/workspaces/{workspaceId}/your-ai-journey/hero": {
2549
+ parameters: {
2550
+ query?: never;
2551
+ header?: never;
2552
+ path?: never;
2553
+ cookie?: never;
2554
+ };
2555
+ /**
2556
+ * First-paint hero payload for the /dashboard page
2557
+ * @description Returns analytics and productivity in one response so the dashboard hero can paint with a single RTT (auth + membership checked once). Nested payloads match the dedicated analytics and productivity routes and reuse those routes' 60s caches (there is no separate hero-level cache). `generatedAt` on the hero envelope and both nested payloads is set to the same assembly timestamp.
2558
+ */
2559
+ get: operations["getYourAiJourneyHero"];
2560
+ put?: never;
2561
+ post?: never;
2562
+ delete?: never;
2563
+ options?: never;
2564
+ head?: never;
2565
+ patch?: never;
2566
+ trace?: never;
2567
+ };
2468
2568
  "/workspaces/{workspaceId}/your-ai-journey/analytics": {
2469
2569
  parameters: {
2470
2570
  query?: never;
@@ -4488,6 +4588,22 @@ export interface components {
4488
4588
  */
4489
4589
  granted?: "read" | "write" | "admin" | null;
4490
4590
  };
4591
+ GithubWritePermissionsRequiredErrorDto: {
4592
+ /** @enum {string} */
4593
+ error: "github_write_permissions_required";
4594
+ missingPermissions: components["schemas"]["GithubMissingPermissionDto"][];
4595
+ /** @description GitHub installation settings URL to approve write permissions. */
4596
+ manageUrl?: string | null;
4597
+ /** @description Human-readable summary of the write permission upgrade. */
4598
+ writeUpgradeMessage?: string | null;
4599
+ };
4600
+ GithubPermissionsCheckFailedErrorDto: {
4601
+ /**
4602
+ * @description GitHub installation permissions could not be verified (transient upstream failure).
4603
+ * @enum {string}
4604
+ */
4605
+ error: "github_permissions_check_failed";
4606
+ };
4491
4607
  GithubInstallationSummaryDto: {
4492
4608
  installationId: string;
4493
4609
  account: components["schemas"]["GithubAccountDto"];
@@ -4497,11 +4613,35 @@ export interface components {
4497
4613
  manageUrl?: string | null;
4498
4614
  /** Format: date-time */
4499
4615
  lastSyncedAt?: string | null;
4500
- /** @description True when this installation's granted permissions are below what the ThinkAI GitHub App currently requests. */
4616
+ /** @description True when this installation lacks core read permissions required for connect and analysis. Alias for `!corePermissionsOk`. */
4501
4617
  permissionsUpgradeRequired: boolean;
4618
+ /** @description True when installation grants read permissions for repository analysis (contents, metadata, pull requests, and members for org installs). */
4619
+ corePermissionsOk: boolean;
4620
+ /** @description True when automated fixes are enabled and the linked Automations (write) installation grants write permissions required for fix PRs. */
4621
+ writePermissionsOk: boolean;
4622
+ /** @description Alias for `!writePermissionsOk`. */
4623
+ writePermissionsUpgradeRequired: boolean;
4624
+ /** @description Core read permissions still needed for connect and analysis. */
4502
4625
  missingPermissions?: components["schemas"]["GithubMissingPermissionDto"][];
4503
- /** @description Human-readable summary for UI when permissionsUpgradeRequired is true. */
4626
+ /** @description Write permissions still needed for automated fix PRs. */
4627
+ missingWritePermissions?: components["schemas"]["GithubMissingPermissionDto"][];
4628
+ /** @description Human-readable summary for UI when core permissions are missing. */
4504
4629
  upgradeMessage?: string | null;
4630
+ /** @description Human-readable summary for UI when write permissions are missing. */
4631
+ writeUpgradeMessage?: string | null;
4632
+ /** @description True when this workspace has enabled automated fixes for this Insights (read) installation and linked a ThinkAI Platform Automations (write) installation. */
4633
+ automatedFixesEnabled: boolean;
4634
+ /** @description True when an Automations (write) GitHub App installation is linked. */
4635
+ writeAppInstalled: boolean;
4636
+ /** @description GitHub installation id for the Automations (write) app, when linked. */
4637
+ writeInstallationId?: string | null;
4638
+ /**
4639
+ * Format: uri
4640
+ * @description GitHub settings URL for the Automations (write) installation.
4641
+ */
4642
+ writeManageUrl?: string | null;
4643
+ /** @description True when the Automations app is configured and automated fixes are not yet enabled for this installation (UI may show Enable automated fixes). */
4644
+ canEnableAutomatedFixes: boolean;
4505
4645
  };
4506
4646
  GithubPendingApprovalDto: {
4507
4647
  /**
@@ -4657,8 +4797,18 @@ export interface components {
4657
4797
  GithubInstallationStatusDto: {
4658
4798
  installed: boolean;
4659
4799
  installations: components["schemas"]["GithubInstallationSummaryDto"][];
4660
- /** @description True if any connected installation is under-permissioned. */
4800
+ /** @description True if any connected installation lacks core read permissions. Alias for `!corePermissionsOk`. */
4661
4801
  permissionsUpgradeRequired: boolean;
4802
+ /** @description True when every connected installation grants core read permissions. */
4803
+ corePermissionsOk: boolean;
4804
+ /** @description True when every connected installation grants write permissions for automated fixes. */
4805
+ writePermissionsOk: boolean;
4806
+ /** @description True when any connected installation lacks write permissions for automated fixes. */
4807
+ writePermissionsUpgradeRequired: boolean;
4808
+ /** @description Aggregated write permissions missing on installations that lack write access. */
4809
+ missingWritePermissions?: components["schemas"]["GithubMissingPermissionDto"][];
4810
+ /** @description Human-readable summary when write permissions are missing. */
4811
+ writeUpgradeMessage?: string | null;
4662
4812
  /** @description Present when an org admin must approve the GitHub App install request. */
4663
4813
  pendingApproval?: components["schemas"]["GithubPendingApprovalDto"] | null;
4664
4814
  /** @description Present when GitHub connect was started but not completed (install OAuth state or account-picker session still active). Omitted when pendingApproval is set. */
@@ -4698,12 +4848,28 @@ export interface components {
4698
4848
  * @description SPA origin to redirect back to after OAuth; must match server spaOrigins allowlist.
4699
4849
  */
4700
4850
  spaOrigin?: string;
4851
+ /**
4852
+ * @description connect installs ThinkAI Platform Insights (read). enable_fixes installs ThinkAI Platform Automations (write) for the Insights installation identified by installationId.
4853
+ * @enum {string}
4854
+ */
4855
+ intent?: "connect" | "enable_fixes";
4856
+ /** @description Insights (read) installation id required when intent is enable_fixes. */
4857
+ installationId?: string;
4701
4858
  };
4702
4859
  GithubInstallUrlResponseDto: {
4703
4860
  /** Format: uri */
4704
4861
  url: string;
4705
4862
  state: string;
4706
4863
  };
4864
+ GithubAutomatedFixesEnableResponseDto: {
4865
+ /**
4866
+ * @description enabled — write app already linked and flag flipped; needs_install — client should call install-url with intent=enable_fixes.
4867
+ * @enum {string}
4868
+ */
4869
+ outcome: "enabled" | "needs_install";
4870
+ /** @description Present when outcome is enabled. */
4871
+ status?: components["schemas"]["GithubInstallationStatusDto"];
4872
+ };
4707
4873
  GithubUserAuthorizeUrlRequestDto: {
4708
4874
  returnPath?: string;
4709
4875
  /**
@@ -5616,6 +5782,17 @@ export interface components {
5616
5782
  totalFixedIssues: number;
5617
5783
  };
5618
5784
  };
5785
+ YourAiJourneyHeroDto: {
5786
+ /** Format: uuid */
5787
+ workspaceId: string;
5788
+ /**
5789
+ * Format: date-time
5790
+ * @description Assembly timestamp for this hero response; also written onto analytics.generatedAt and productivity.generatedAt so all three match.
5791
+ */
5792
+ generatedAt: string;
5793
+ analytics: components["schemas"]["YourAiJourneyAnalyticsDto"];
5794
+ productivity: components["schemas"]["DashboardProductivityDto"];
5795
+ };
5619
5796
  YourAiJourneyAnalyticsDto: {
5620
5797
  /** Format: uuid */
5621
5798
  workspaceId: string;
@@ -5978,6 +6155,79 @@ export interface components {
5978
6155
  */
5979
6156
  lastSeenAt: string;
5980
6157
  };
6158
+ /** @enum {string} */
6159
+ SdlcModuleId: "dora" | "ci-pipeline" | "collaboration-pr" | "security-risk" | "governance-architecture" | "financial-operational";
6160
+ /** @enum {string} */
6161
+ SdlcMetricId: "dora-deployment-frequency" | "dora-lead-time" | "dora-cfr" | "dora-mttr" | "ci-success-rate" | "ci-duration-p50-p95" | "ci-flakiness" | "ci-queue-wait" | "ci-cache-hit" | "pr-review-time" | "pr-bus-factor" | "pr-size" | "pr-abandonment" | "pr-review-depth" | "pr-draft-duration" | "pr-merge-conflicts" | "pr-commit-density" | "sec-dependabot-backlog" | "sec-vuln-mttr" | "sec-secret-scanning" | "sec-self-approvals" | "sec-unreviewed-merge" | "gov-branch-protection" | "gov-stale-branches" | "gov-orphaned-repos" | "gov-readme-health" | "gov-codeowners" | "gov-issue-pr-linkage" | "fin-gha-minutes" | "fin-copilot-utilization" | "fin-org-inactivity" | "fin-env-drift" | "fin-release-cadence" | "fin-api-rate-limit";
6162
+ /** @enum {string} */
6163
+ SdlcMetricDataStatus: "live" | "preview" | "unavailable";
6164
+ /** @enum {string} */
6165
+ SdlcMetricHealthStatus: "healthy" | "warning" | "critical" | "unknown";
6166
+ /** @enum {string} */
6167
+ SdlcBenchmarkBand: "elite" | "high" | "medium" | "low";
6168
+ SdlcMetricTrendDto: {
6169
+ /** @enum {string} */
6170
+ direction: "up" | "down" | "flat";
6171
+ deltaPercent?: number;
6172
+ };
6173
+ SdlcDailySeriesPointDto: {
6174
+ /**
6175
+ * Format: date
6176
+ * @description Inclusive ISO calendar day (UTC).
6177
+ */
6178
+ date: string;
6179
+ value: number;
6180
+ };
6181
+ SdlcMetricDto: {
6182
+ id: components["schemas"]["SdlcMetricId"];
6183
+ name: string;
6184
+ dataStatus: components["schemas"]["SdlcMetricDataStatus"];
6185
+ healthStatus: components["schemas"]["SdlcMetricHealthStatus"];
6186
+ value: (number | string) | null;
6187
+ unit?: string;
6188
+ secondaryValue?: (number | string) | null;
6189
+ secondaryLabel?: string;
6190
+ trend?: components["schemas"]["SdlcMetricTrendDto"];
6191
+ benchmarkBand?: components["schemas"]["SdlcBenchmarkBand"];
6192
+ drilldownAvailable: boolean;
6193
+ dailySeries?: components["schemas"]["SdlcDailySeriesPointDto"][];
6194
+ unavailableReason?: string;
6195
+ };
6196
+ SdlcModuleDto: {
6197
+ id: components["schemas"]["SdlcModuleId"];
6198
+ name: string;
6199
+ metrics: components["schemas"]["SdlcMetricDto"][];
6200
+ };
6201
+ SdlcOverviewDto: {
6202
+ rangeId: string;
6203
+ /** Format: date */
6204
+ from: string;
6205
+ /** Format: date */
6206
+ to: string;
6207
+ department: string;
6208
+ team: string;
6209
+ repoIds: string[];
6210
+ /** Format: date-time */
6211
+ asOf: string;
6212
+ modules: components["schemas"]["SdlcModuleDto"][];
6213
+ };
6214
+ SdlcDrilldownItemDto: {
6215
+ id: string;
6216
+ title: string;
6217
+ subtitle?: string;
6218
+ /** Format: uri */
6219
+ url?: string;
6220
+ /** Format: date-time */
6221
+ occurredAt?: string;
6222
+ metadata?: {
6223
+ [key: string]: string | number;
6224
+ };
6225
+ };
6226
+ SdlcDrilldownDto: {
6227
+ metricId: components["schemas"]["SdlcMetricId"];
6228
+ items: components["schemas"]["SdlcDrilldownItemDto"][];
6229
+ nextCursor?: string;
6230
+ };
5981
6231
  };
5982
6232
  responses: {
5983
6233
  /** @description Missing or invalid bearer token */
@@ -6031,6 +6281,8 @@ export interface components {
6031
6281
  InsightsProductivityFrom: string;
6032
6282
  /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
6033
6283
  InsightsProductivityTo: string;
6284
+ /** @description Day-level Measure window. Presets: `7d`, `30d`, `90d`, `180d`. Custom inclusive calendar range: `cr:YYYY-MM-DD:YYYY-MM-DD` (max span 180 days). */
6285
+ InsightsSdlcRangeId: string;
6034
6286
  /** @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). */
6035
6287
  InsightsDepartmentFilter: string;
6036
6288
  /** @description Page size (default 25, max 100). */
@@ -6213,6 +6465,8 @@ export type RepoEligibilityOverridesDto = components['schemas']['RepoEligibility
6213
6465
  export type WorkspaceRepoEligibilityDto = components['schemas']['WorkspaceRepoEligibilityDto'];
6214
6466
  export type RepoEligibilityLimitsDto = components['schemas']['RepoEligibilityLimitsDto'];
6215
6467
  export type GithubMissingPermissionDto = components['schemas']['GithubMissingPermissionDto'];
6468
+ export type GithubWritePermissionsRequiredErrorDto = components['schemas']['GithubWritePermissionsRequiredErrorDto'];
6469
+ export type GithubPermissionsCheckFailedErrorDto = components['schemas']['GithubPermissionsCheckFailedErrorDto'];
6216
6470
  export type GithubInstallationSummaryDto = components['schemas']['GithubInstallationSummaryDto'];
6217
6471
  export type GithubPendingApprovalDto = components['schemas']['GithubPendingApprovalDto'];
6218
6472
  export type GithubSetupInProgressDto = components['schemas']['GithubSetupInProgressDto'];
@@ -6228,6 +6482,7 @@ export type GithubActionsEnableResponseDto = components['schemas']['GithubAction
6228
6482
  export type GithubInstallationStatusDto = components['schemas']['GithubInstallationStatusDto'];
6229
6483
  export type GithubInstallUrlRequestDto = components['schemas']['GithubInstallUrlRequestDto'];
6230
6484
  export type GithubInstallUrlResponseDto = components['schemas']['GithubInstallUrlResponseDto'];
6485
+ export type GithubAutomatedFixesEnableResponseDto = components['schemas']['GithubAutomatedFixesEnableResponseDto'];
6231
6486
  export type GithubUserAuthorizeUrlRequestDto = components['schemas']['GithubUserAuthorizeUrlRequestDto'];
6232
6487
  export type GithubUserAuthorizeUrlResponseDto = components['schemas']['GithubUserAuthorizeUrlResponseDto'];
6233
6488
  export type GithubConnectableAccountDto = components['schemas']['GithubConnectableAccountDto'];
@@ -6326,6 +6581,7 @@ export type YourAiJourneyPrSignalsWeekDto = components['schemas']['YourAiJourney
6326
6581
  export type YourAiJourneyPrSignalsDto = components['schemas']['YourAiJourneyPrSignalsDto'];
6327
6582
  export type YourAiJourneyReadinessDimensionDto = components['schemas']['YourAiJourneyReadinessDimensionDto'];
6328
6583
  export type YourAiJourneyReadinessAggregateDto = components['schemas']['YourAiJourneyReadinessAggregateDto'];
6584
+ export type YourAiJourneyHeroDto = components['schemas']['YourAiJourneyHeroDto'];
6329
6585
  export type YourAiJourneyAnalyticsDto = components['schemas']['YourAiJourneyAnalyticsDto'];
6330
6586
  export type YourAiJourneyAiSpendWeekDto = components['schemas']['YourAiJourneyAiSpendWeekDto'];
6331
6587
  export type YourAiJourneyAiSpendDto = components['schemas']['YourAiJourneyAiSpendDto'];
@@ -6353,6 +6609,18 @@ export type HrisProviderSyncResultDto = components['schemas']['HrisProviderSyncR
6353
6609
  export type ActivityLogPageDto = components['schemas']['ActivityLogPageDto'];
6354
6610
  export type ReadinessTokenUsageRowDto = components['schemas']['ReadinessTokenUsageRowDto'];
6355
6611
  export type ReadinessTokenUsageByDimensionRowDto = components['schemas']['ReadinessTokenUsageByDimensionRowDto'];
6612
+ export type SdlcModuleId = components['schemas']['SdlcModuleId'];
6613
+ export type SdlcMetricId = components['schemas']['SdlcMetricId'];
6614
+ export type SdlcMetricDataStatus = components['schemas']['SdlcMetricDataStatus'];
6615
+ export type SdlcMetricHealthStatus = components['schemas']['SdlcMetricHealthStatus'];
6616
+ export type SdlcBenchmarkBand = components['schemas']['SdlcBenchmarkBand'];
6617
+ export type SdlcMetricTrendDto = components['schemas']['SdlcMetricTrendDto'];
6618
+ export type SdlcDailySeriesPointDto = components['schemas']['SdlcDailySeriesPointDto'];
6619
+ export type SdlcMetricDto = components['schemas']['SdlcMetricDto'];
6620
+ export type SdlcModuleDto = components['schemas']['SdlcModuleDto'];
6621
+ export type SdlcOverviewDto = components['schemas']['SdlcOverviewDto'];
6622
+ export type SdlcDrilldownItemDto = components['schemas']['SdlcDrilldownItemDto'];
6623
+ export type SdlcDrilldownDto = components['schemas']['SdlcDrilldownDto'];
6356
6624
  export type ResponseUnauthorized = components['responses']['Unauthorized'];
6357
6625
  export type ResponseForbidden = components['responses']['Forbidden'];
6358
6626
  export type ResponseZenHrSyncInProgress = components['responses']['ZenHrSyncInProgress'];
@@ -6367,6 +6635,7 @@ export type ParameterFixId = components['parameters']['FixId'];
6367
6635
  export type ParameterInsightsProductivityRangeId = components['parameters']['InsightsProductivityRangeId'];
6368
6636
  export type ParameterInsightsProductivityFrom = components['parameters']['InsightsProductivityFrom'];
6369
6637
  export type ParameterInsightsProductivityTo = components['parameters']['InsightsProductivityTo'];
6638
+ export type ParameterInsightsSdlcRangeId = components['parameters']['InsightsSdlcRangeId'];
6370
6639
  export type ParameterInsightsDepartmentFilter = components['parameters']['InsightsDepartmentFilter'];
6371
6640
  export type ParameterPaginationLimit = components['parameters']['PaginationLimit'];
6372
6641
  export type ParameterPaginationOffset = components['parameters']['PaginationOffset'];
@@ -8959,6 +9228,112 @@ export interface operations {
8959
9228
  };
8960
9229
  };
8961
9230
  };
9231
+ getSdlcInsightsOverview: {
9232
+ parameters: {
9233
+ query?: {
9234
+ /** @description Day-level Measure window. Presets: `7d`, `30d`, `90d`, `180d`. Custom inclusive calendar range: `cr:YYYY-MM-DD:YYYY-MM-DD` (max span 180 days). */
9235
+ rangeId?: components["parameters"]["InsightsSdlcRangeId"];
9236
+ /** @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). */
9237
+ department?: components["parameters"]["InsightsDepartmentFilter"];
9238
+ /** @description Team name filter; send `All teams` to include every team. */
9239
+ team?: string;
9240
+ /** @description Comma-separated internal repo ids; omit or empty for all repos. */
9241
+ repoIds?: string;
9242
+ };
9243
+ header?: never;
9244
+ path: {
9245
+ workspaceId: components["parameters"]["WorkspaceId"];
9246
+ };
9247
+ cookie?: never;
9248
+ };
9249
+ requestBody?: never;
9250
+ responses: {
9251
+ /** @description Engineering Health overview payload */
9252
+ 200: {
9253
+ headers: {
9254
+ [name: string]: unknown;
9255
+ };
9256
+ content: {
9257
+ "application/json": components["schemas"]["SdlcOverviewDto"];
9258
+ };
9259
+ };
9260
+ /** @description Invalid query parameters */
9261
+ 400: {
9262
+ headers: {
9263
+ [name: string]: unknown;
9264
+ };
9265
+ content: {
9266
+ "application/json": {
9267
+ /** @example invalid_query */
9268
+ error: string;
9269
+ };
9270
+ };
9271
+ };
9272
+ 401: components["responses"]["Unauthorized"];
9273
+ 403: components["responses"]["Forbidden"];
9274
+ /** @description Workspace does not exist or malformed workspaceId */
9275
+ 404: {
9276
+ headers: {
9277
+ [name: string]: unknown;
9278
+ };
9279
+ content?: never;
9280
+ };
9281
+ };
9282
+ };
9283
+ getSdlcInsightsDrilldown: {
9284
+ parameters: {
9285
+ query?: {
9286
+ /** @description Day-level Measure window. Presets: `7d`, `30d`, `90d`, `180d`. Custom inclusive calendar range: `cr:YYYY-MM-DD:YYYY-MM-DD` (max span 180 days). */
9287
+ rangeId?: components["parameters"]["InsightsSdlcRangeId"];
9288
+ /** @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). */
9289
+ department?: components["parameters"]["InsightsDepartmentFilter"];
9290
+ team?: string;
9291
+ repoIds?: string;
9292
+ /** @description Opaque pagination cursor from a prior response. */
9293
+ cursor?: string;
9294
+ limit?: number;
9295
+ };
9296
+ header?: never;
9297
+ path: {
9298
+ workspaceId: components["parameters"]["WorkspaceId"];
9299
+ metricId: components["schemas"]["SdlcMetricId"];
9300
+ };
9301
+ cookie?: never;
9302
+ };
9303
+ requestBody?: never;
9304
+ responses: {
9305
+ /** @description Drill-down page */
9306
+ 200: {
9307
+ headers: {
9308
+ [name: string]: unknown;
9309
+ };
9310
+ content: {
9311
+ "application/json": components["schemas"]["SdlcDrilldownDto"];
9312
+ };
9313
+ };
9314
+ /** @description Invalid query parameters */
9315
+ 400: {
9316
+ headers: {
9317
+ [name: string]: unknown;
9318
+ };
9319
+ content: {
9320
+ "application/json": {
9321
+ /** @example invalid_query */
9322
+ error: string;
9323
+ };
9324
+ };
9325
+ };
9326
+ 401: components["responses"]["Unauthorized"];
9327
+ 403: components["responses"]["Forbidden"];
9328
+ /** @description Workspace or metric not found */
9329
+ 404: {
9330
+ headers: {
9331
+ [name: string]: unknown;
9332
+ };
9333
+ content?: never;
9334
+ };
9335
+ };
9336
+ };
8962
9337
  getAiToolMembers: {
8963
9338
  parameters: {
8964
9339
  query?: {
@@ -9331,6 +9706,90 @@ export interface operations {
9331
9706
  "application/json": components["schemas"]["ErrorMessageDto"];
9332
9707
  };
9333
9708
  };
9709
+ /** @description Requested GitHub App is not configured */
9710
+ 503: {
9711
+ headers: {
9712
+ [name: string]: unknown;
9713
+ };
9714
+ content: {
9715
+ "application/json": components["schemas"]["ErrorMessageDto"];
9716
+ };
9717
+ };
9718
+ };
9719
+ };
9720
+ postGithubAutomatedFixesEnable: {
9721
+ parameters: {
9722
+ query?: never;
9723
+ header?: never;
9724
+ path: {
9725
+ workspaceId: components["parameters"]["WorkspaceId"];
9726
+ installationId: string;
9727
+ };
9728
+ cookie?: never;
9729
+ };
9730
+ requestBody?: never;
9731
+ responses: {
9732
+ /** @description Enable result */
9733
+ 200: {
9734
+ headers: {
9735
+ [name: string]: unknown;
9736
+ };
9737
+ content: {
9738
+ "application/json": components["schemas"]["GithubAutomatedFixesEnableResponseDto"];
9739
+ };
9740
+ };
9741
+ 401: components["responses"]["Unauthorized"];
9742
+ 403: components["responses"]["Forbidden"];
9743
+ /** @description Workspace or installation not found */
9744
+ 404: {
9745
+ headers: {
9746
+ [name: string]: unknown;
9747
+ };
9748
+ content: {
9749
+ "application/json": components["schemas"]["ErrorMessageDto"];
9750
+ };
9751
+ };
9752
+ /** @description Automations GitHub App not configured */
9753
+ 503: {
9754
+ headers: {
9755
+ [name: string]: unknown;
9756
+ };
9757
+ content: {
9758
+ "application/json": components["schemas"]["ErrorMessageDto"];
9759
+ };
9760
+ };
9761
+ };
9762
+ };
9763
+ deleteGithubAutomatedFixes: {
9764
+ parameters: {
9765
+ query?: never;
9766
+ header?: never;
9767
+ path: {
9768
+ workspaceId: components["parameters"]["WorkspaceId"];
9769
+ installationId: string;
9770
+ };
9771
+ cookie?: never;
9772
+ };
9773
+ requestBody?: never;
9774
+ responses: {
9775
+ /** @description Automated fixes disabled (or already disabled) */
9776
+ 204: {
9777
+ headers: {
9778
+ [name: string]: unknown;
9779
+ };
9780
+ content?: never;
9781
+ };
9782
+ 401: components["responses"]["Unauthorized"];
9783
+ 403: components["responses"]["Forbidden"];
9784
+ /** @description Workspace or installation not found */
9785
+ 404: {
9786
+ headers: {
9787
+ [name: string]: unknown;
9788
+ };
9789
+ content: {
9790
+ "application/json": components["schemas"]["ErrorMessageDto"];
9791
+ };
9792
+ };
9334
9793
  };
9335
9794
  };
9336
9795
  postGithubUserAuthorizeUrl: {
@@ -11987,6 +12446,24 @@ export interface operations {
11987
12446
  "application/json": components["schemas"]["ErrorMessageDto"];
11988
12447
  };
11989
12448
  };
12449
+ /** @description GitHub installation lacks write permissions required for automated fix PRs */
12450
+ 422: {
12451
+ headers: {
12452
+ [name: string]: unknown;
12453
+ };
12454
+ content: {
12455
+ "application/json": components["schemas"]["GithubWritePermissionsRequiredErrorDto"];
12456
+ };
12457
+ };
12458
+ /** @description GitHub installation permissions could not be verified */
12459
+ 503: {
12460
+ headers: {
12461
+ [name: string]: unknown;
12462
+ };
12463
+ content: {
12464
+ "application/json": components["schemas"]["GithubPermissionsCheckFailedErrorDto"];
12465
+ };
12466
+ };
11990
12467
  };
11991
12468
  };
11992
12469
  postReadinessFixRetrigger: {
@@ -12030,6 +12507,24 @@ export interface operations {
12030
12507
  "application/json": components["schemas"]["ErrorMessageDto"];
12031
12508
  };
12032
12509
  };
12510
+ /** @description GitHub installation lacks write permissions required for automated fix PRs */
12511
+ 422: {
12512
+ headers: {
12513
+ [name: string]: unknown;
12514
+ };
12515
+ content: {
12516
+ "application/json": components["schemas"]["GithubWritePermissionsRequiredErrorDto"];
12517
+ };
12518
+ };
12519
+ /** @description GitHub installation permissions could not be verified */
12520
+ 503: {
12521
+ headers: {
12522
+ [name: string]: unknown;
12523
+ };
12524
+ content: {
12525
+ "application/json": components["schemas"]["GithubPermissionsCheckFailedErrorDto"];
12526
+ };
12527
+ };
12033
12528
  };
12034
12529
  };
12035
12530
  putCursorPlatformKeyConsent: {
@@ -12773,6 +13268,39 @@ export interface operations {
12773
13268
  };
12774
13269
  };
12775
13270
  };
13271
+ getYourAiJourneyHero: {
13272
+ parameters: {
13273
+ query?: never;
13274
+ header?: never;
13275
+ path: {
13276
+ workspaceId: components["parameters"]["WorkspaceId"];
13277
+ };
13278
+ cookie?: never;
13279
+ };
13280
+ requestBody?: never;
13281
+ responses: {
13282
+ /** @description Hero bootstrap payload */
13283
+ 200: {
13284
+ headers: {
13285
+ [name: string]: unknown;
13286
+ };
13287
+ content: {
13288
+ "application/json": components["schemas"]["YourAiJourneyHeroDto"];
13289
+ };
13290
+ };
13291
+ 401: components["responses"]["Unauthorized"];
13292
+ 403: components["responses"]["Forbidden"];
13293
+ /** @description Workspace does not exist */
13294
+ 404: {
13295
+ headers: {
13296
+ [name: string]: unknown;
13297
+ };
13298
+ content: {
13299
+ "application/json": components["schemas"]["ErrorMessageDto"];
13300
+ };
13301
+ };
13302
+ };
13303
+ };
12776
13304
  getYourAiJourneyAnalytics: {
12777
13305
  parameters: {
12778
13306
  query?: never;