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