// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

edition = "2023";

package optimization_guide.proto;

import "components/optimization_guide/proto/features/common_quality_data.proto";

import "components/optimization_guide/proto/model_quality_metadata.proto";

option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.optimization_guide.features.proto";

option java_outer_classname = "IosSmartTabGroupingProto";

// DO NOT EDIT THIS FILE DIRECTLY!
//
// This file is generated in g3 and then synced to Chrome. Instead, please refer to
// http://go/chrome-mqls-onboarding (Google-internal link), and then changes will
// be synced with Chrome automatically.

// Contains the request, response, and metadata for the iOS Smart Tab Grouping
// feature.
// Next ID: 4
message IosSmartTabGroupingLoggingData {
  // The feature request.
  IosSmartTabGroupingRequest request = 1 [features = { field_presence: EXPLICIT }];

  // The feature response.
  IosSmartTabGroupingResponse response = 2 [features = { field_presence: EXPLICIT }];

  // The model execution metadata.
  ModelExecutionInfo model_execution_info = 3 [features = { field_presence: EXPLICIT }];
}

// The request for the iOS Smart Tab Grouping feature.
// Next ID: 5
message IosSmartTabGroupingRequest {
  // The user tabs to be organized.
  repeated Tab tabs = 1;

  // All pre-existing tab groups.
  repeated TabGroupMinimal pre_existing_tab_groups = 2;

  // Whether or not the tab organization response can include reorganizing
  // existing tab groups.
  bool allow_reorganizing_existing_groups = 3 [features = { field_presence: EXPLICIT }];

  // The direct user instruction about how the tabs should be organized.
  string user_command = 4 [features = { field_presence: EXPLICIT }];
}

// The response for the iOS Smart Tab Grouping feature.
// Next ID: 2
message IosSmartTabGroupingResponse {
  // Resulting tab groups.
  repeated TabGroupMinimal tab_groups = 1;
}
