@thinkai/tai-api-contract 2.64.0 → 2.66.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.
@@ -962,6 +962,26 @@ export interface paths {
962
962
  patch?: never;
963
963
  trace?: never;
964
964
  };
965
+ "/workspaces/{workspaceId}/insights/recommendations-page/bundle": {
966
+ parameters: {
967
+ query?: never;
968
+ header?: never;
969
+ path?: never;
970
+ cookie?: never;
971
+ };
972
+ /**
973
+ * Insights recommendations — full page bundle
974
+ * @description Single HTTP round-trip for `/insights-recommendations`. Returns the same section payloads as the seven per-resource GETs (`verdict-summary` through `recommendations`) nested under one response with a shared `_meta` envelope. Section objects omit per-resource `_meta`; use the top-level `_meta.syncedAt` for the page.
975
+ */
976
+ get: operations["getInsightsRecommendationsPageBundle"];
977
+ put?: never;
978
+ post?: never;
979
+ delete?: never;
980
+ options?: never;
981
+ head?: never;
982
+ patch?: never;
983
+ trace?: never;
984
+ };
965
985
  "/workspaces/{workspaceId}/insights/recommendations-page/verdict-summary": {
966
986
  parameters: {
967
987
  query?: never;
@@ -4978,6 +4998,14 @@ export interface components {
4978
4998
  productivityLastIngestAt?: string | null;
4979
4999
  /** @description True while another session holds the workspace productivity ingest advisory lock. */
4980
5000
  productivityRefreshInProgress?: boolean;
5001
+ /** @description Repos remaining in the staged backfill queue. */
5002
+ productivityIngestPendingRepoCount?: number | null;
5003
+ /** @description Repos benign-skipped or quarantined during backfill. */
5004
+ productivityIngestSkippedRepoCount?: number | null;
5005
+ /** @description Repos with transient failures awaiting retry in the current phase. */
5006
+ productivityIngestFailedRepoCount?: number | null;
5007
+ /** @description Percent of eligible repos with merged-PR productivity data (excludes skipped/quarantined). */
5008
+ productivityIngestCoveragePercent?: number | null;
4981
5009
  };
4982
5010
  GithubInstallUrlRequestDto: {
4983
5011
  returnPath?: string;
@@ -6046,7 +6074,7 @@ export interface components {
6046
6074
  * @description Type of workspace lifecycle event.
6047
6075
  * @enum {string}
6048
6076
  */
6049
- 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";
6077
+ 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";
6050
6078
  ActivityLogActorDto: {
6051
6079
  /** Format: uuid */
6052
6080
  userId: string;
@@ -6516,6 +6544,19 @@ export interface components {
6516
6544
  items: components["schemas"]["InsightsRecommendationDto"][];
6517
6545
  _meta: components["schemas"]["InsightsResponseMeta"];
6518
6546
  };
6547
+ InsightsRecommendationsPageBundleRecommendations: {
6548
+ items: components["schemas"]["InsightsRecommendationDto"][];
6549
+ };
6550
+ InsightsRecommendationsPageBundleResponse: {
6551
+ verdictSummary: components["schemas"]["InsightsRecommendationsVerdictSummary"];
6552
+ roiQuadrant: components["schemas"]["InsightsRecommendationsRoiQuadrant"];
6553
+ velocityQuality: components["schemas"]["InsightsRecommendationsVelocityQuality"];
6554
+ reviewPipeline: components["schemas"]["InsightsRecommendationsReviewPipeline"];
6555
+ costPerPr: components["schemas"]["InsightsRecommendationsCostPerPr"];
6556
+ adoptionGap: components["schemas"]["InsightsRecommendationsAdoptionGap"];
6557
+ recommendations: components["schemas"]["InsightsRecommendationsPageBundleRecommendations"];
6558
+ _meta: components["schemas"]["InsightsResponseMeta"];
6559
+ };
6519
6560
  };
6520
6561
  responses: {
6521
6562
  /** @description Missing or invalid bearer token */
@@ -6952,6 +6993,8 @@ export type InsightsEvidenceChip = components['schemas']['InsightsEvidenceChip']
6952
6993
  export type InsightsRecommendationEvidenceGroup = components['schemas']['InsightsRecommendationEvidenceGroup'];
6953
6994
  export type InsightsRecommendationDto = components['schemas']['InsightsRecommendationDto'];
6954
6995
  export type InsightsRecommendationsListResponse = components['schemas']['InsightsRecommendationsListResponse'];
6996
+ export type InsightsRecommendationsPageBundleRecommendations = components['schemas']['InsightsRecommendationsPageBundleRecommendations'];
6997
+ export type InsightsRecommendationsPageBundleResponse = components['schemas']['InsightsRecommendationsPageBundleResponse'];
6955
6998
  export type ResponseUnauthorized = components['responses']['Unauthorized'];
6956
6999
  export type ResponseForbidden = components['responses']['Forbidden'];
6957
7000
  export type ResponseZenHrSyncInProgress = components['responses']['ZenHrSyncInProgress'];
@@ -9672,6 +9715,64 @@ export interface operations {
9672
9715
  };
9673
9716
  };
9674
9717
  };
9718
+ getInsightsRecommendationsPageBundle: {
9719
+ parameters: {
9720
+ query: {
9721
+ /** @description Org-chart department ids (repeat param or comma-separated). Empty/omitted = all departments. */
9722
+ departments?: components["parameters"]["InsightsRecommendationsDepartments"];
9723
+ /** @description Org-chart team ids (repeat param or comma-separated). Empty/omitted = all teams in department scope. */
9724
+ teams?: components["parameters"]["InsightsRecommendationsTeams"];
9725
+ /** @description Inclusive window start (`YYYY-MM-DD`). Required with `dateTo`. Maps to Measure day-mode custom range (`from`/`to`). Max span 180 days. */
9726
+ dateFrom: components["parameters"]["InsightsRecommendationsDateFrom"];
9727
+ /** @description Inclusive window end (`YYYY-MM-DD`). Required with `dateFrom`. */
9728
+ dateTo: components["parameters"]["InsightsRecommendationsDateTo"];
9729
+ /** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
9730
+ provider?: components["parameters"]["InsightsRecommendationsProvider"];
9731
+ /** @description Include contributors / AI rows not mapped to a team. */
9732
+ includeUnmapped?: components["parameters"]["InsightsRecommendationsIncludeUnmapped"];
9733
+ /** @description Include bot accounts in PR/CI stats. */
9734
+ includeBots?: components["parameters"]["InsightsRecommendationsIncludeBots"];
9735
+ };
9736
+ header?: never;
9737
+ path: {
9738
+ workspaceId: components["parameters"]["WorkspaceId"];
9739
+ };
9740
+ cookie?: never;
9741
+ };
9742
+ requestBody?: never;
9743
+ responses: {
9744
+ /** @description All recommendations-page sections with shared `_meta.isMock=false` */
9745
+ 200: {
9746
+ headers: {
9747
+ [name: string]: unknown;
9748
+ };
9749
+ content: {
9750
+ "application/json": components["schemas"]["InsightsRecommendationsPageBundleResponse"];
9751
+ };
9752
+ };
9753
+ /** @description Invalid filter or date range */
9754
+ 400: {
9755
+ headers: {
9756
+ [name: string]: unknown;
9757
+ };
9758
+ content: {
9759
+ "application/json": {
9760
+ /** @example invalid_query */
9761
+ error: string;
9762
+ };
9763
+ };
9764
+ };
9765
+ 401: components["responses"]["Unauthorized"];
9766
+ 403: components["responses"]["Forbidden"];
9767
+ /** @description Workspace does not exist or malformed workspaceId */
9768
+ 404: {
9769
+ headers: {
9770
+ [name: string]: unknown;
9771
+ };
9772
+ content?: never;
9773
+ };
9774
+ };
9775
+ };
9675
9776
  getInsightsRecommendationsVerdictSummary: {
9676
9777
  parameters: {
9677
9778
  query: {