// Copyright 2024 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/model_quality_metadata.proto";

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

option java_outer_classname = "WritingAssistanceApiProto";

// 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.

message WritingAssistanceApiLoggingData {
  WritingAssistanceApiRequest request = 1 [features = { field_presence: EXPLICIT }];

  WritingAssistanceApiResponse response = 2 [features = { field_presence: EXPLICIT }];

  ModelExecutionInfo model_execution_info = 3 [features = { field_presence: EXPLICIT }];
}

message WritingAssistanceApiRequest {
  string context = 1 [features = { field_presence: EXPLICIT }];

  WritingAssistanceApiOptions options = 2 [features = { field_presence: EXPLICIT }];

  string rewrite_text = 3 [features = { field_presence: EXPLICIT }];

  string shared_context = 4 [features = { field_presence: EXPLICIT }];

  string instructions = 5 [features = { field_presence: EXPLICIT }];
}

message WritingAssistanceApiOptions {
  WritingAssistanceApiOutputTone output_tone = 1 [features = { field_presence: EXPLICIT }];

  WritingAssistanceApiOutputFormat output_format = 2 [features = { field_presence: EXPLICIT }];

  WritingAssistanceApiOutputLength output_length = 3 [features = { field_presence: EXPLICIT }];

  string output_language = 4 [features = { field_presence: EXPLICIT }]; // TODO(crbug.com/372099809): Should this be an enum?
}

message WritingAssistanceApiResponse {
  string output = 1 [features = { field_presence: EXPLICIT }];
}

enum WritingAssistanceApiOutputTone {
  WRITING_ASSISTANCE_API_OUTPUT_TONE_NOT_SPECIFIED = 0;

  WRITING_ASSISTANCE_API_OUTPUT_TONE_FORMAL = 1;

  WRITING_ASSISTANCE_API_OUTPUT_TONE_NEUTRAL = 2;

  WRITING_ASSISTANCE_API_OUTPUT_TONE_CASUAL = 3;
}

enum WritingAssistanceApiOutputFormat {
  WRITING_ASSISTANCE_API_OUTPUT_FORMAT_NOT_SPECIFIED = 0;

  WRITING_ASSISTANCE_API_OUTPUT_FORMAT_PLAIN_TEXT = 1;

  WRITING_ASSISTANCE_API_OUTPUT_FORMAT_MARKDOWN = 2;
}

enum WritingAssistanceApiOutputLength {
  WRITING_ASSISTANCE_API_OUTPUT_LENGTH_NOT_SPECIFIED = 0;

  WRITING_ASSISTANCE_API_OUTPUT_LENGTH_SHORT = 1;

  WRITING_ASSISTANCE_API_OUTPUT_LENGTH_MEDIUM = 2;

  WRITING_ASSISTANCE_API_OUTPUT_LENGTH_LONG = 3;
}
