agy-bridge 0.11.0

Async Rust bridge and native runtime for the Google Antigravity SDK
syntax = "proto3";
package genai;

import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";

enum MediaResolution {
  MEDIA_RESOLUTION_UNSPECIFIED = 0;
  LOW = 1;
  MEDIUM = 2;
  HIGH = 3;
  ULTRA_HIGH = 4;
}

message Content {
  oneof type {
    genai.TextContent text = 10;
    genai.ImageContent image = 11;
    genai.AudioContent audio = 12;
    genai.DocumentContent document = 13;
    genai.VideoContent video = 14;
    genai.ThoughtContent thought = 5;
    genai.ToolCallContent tool_call = 24;
    genai.ToolResultContent tool_result = 25;
  }
}

message ContentList {
  repeated genai.Content contents = 1;
}

message WordInfo {
  string text = 1;
  google.protobuf.Duration start_offset = 2;
  google.protobuf.Duration end_offset = 3;
  string speaker = 4;
}

message TextContent {
  message Annotation {
    int32 start_index = 1;
    int32 end_index = 2;
    oneof type {
      genai.UrlCitation url_citation = 5;
      genai.FileCitation file_citation = 6;
      genai.PlaceCitation place_citation = 7;
      genai.WordInfo word_info = 8;
    }
  }
  string text = 3;
  repeated genai.TextContent.Annotation annotations = 4;
}

message ImageContent {
  enum MimeType {
    TYPE_UNSPECIFIED = 0;
    TYPE_PNG = 1;
    TYPE_JPEG = 2;
    TYPE_WEBP = 3;
    TYPE_HEIC = 4;
    TYPE_HEIF = 5;
    TYPE_GIF = 7;
    TYPE_BMP = 8;
    TYPE_TIFF = 9;
    TYPE_VIDEO_FRAME_JPEG2000 = 10;
    TYPE_VIDEO_JPEG2000 = 11;
  }
  genai.ImageContent.MimeType mime_type = 1;
  genai.MediaResolution resolution = 5;
  oneof data_or_uri {
    bytes data = 2;
    string uri = 6;
  }
}

message AudioContent {
  enum MimeType {
    TYPE_UNSPECIFIED = 0;
    TYPE_WAV = 1;
    TYPE_MP3 = 2;
    TYPE_AIFF = 3;
    TYPE_AAC = 4;
    TYPE_OGG = 5;
    TYPE_FLAC = 6;
    TYPE_MPEG = 7;
    TYPE_M4A = 8;
    TYPE_L16 = 9;
    TYPE_S16LE = 10;
    TYPE_OPUS = 11;
    TYPE_ALAW = 12;
    TYPE_MULAW = 13;
    TYPE_VIDEO_AUDIO_S16LE = 14;
  }
  genai.AudioContent.MimeType mime_type = 1;
  int32 channels = 7;
  int32 sample_rate = 8;
  oneof data_or_uri {
    bytes data = 2;
    string uri = 5;
  }
}

message DocumentContent {
  enum MimeType {
    TYPE_UNSPECIFIED = 0;
    TYPE_PDF = 1;
    TYPE_CSV = 2;
  }
  genai.DocumentContent.MimeType mime_type = 1;
  oneof data_or_uri {
    bytes data = 2;
    string uri = 5;
  }
}

message VideoContent {
  enum MimeType {
    TYPE_UNSPECIFIED = 0;
    TYPE_MP4 = 1;
    TYPE_MPEG = 2;
    TYPE_MPG = 3;
    TYPE_MOV = 4;
    TYPE_AVI = 5;
    TYPE_X_FLV = 6;
    TYPE_WEBM = 7;
    TYPE_WMV = 8;
    TYPE_3GPP = 9;
    TYPE_YT_BEYOND = 10;
  }
  genai.VideoContent.MimeType mime_type = 1;
  genai.MediaResolution resolution = 5;
  oneof data_or_uri {
    bytes data = 2;
    string uri = 6;
  }
}

message UrlCitation {
  string url = 1;
  string title = 2;
}

message FileCitation {
  string document_uri = 1;
  string file_name = 2;
  string source = 3;
  genai.Struct custom_metadata = 4;
  int32 page_number = 5;
  string media_id = 6;
}

message PlaceCitation {
  string place_id = 1;
  string name = 2;
  string url = 3;
  repeated genai.ReviewSnippet review_snippets = 4;
}

message ReviewSnippet {
  string title = 1;
  string url = 2;
  string review_id = 3;
}

message Struct {
  repeated genai.Field fields = 1;
}

message Field {
  string name = 1;
  genai.Value value = 2;
}

message Value {
  oneof kind {
    google.protobuf.NullValue null_value = 1;
    double number_value = 2;
    string string_value = 3;
    bool bool_value = 4;
    genai.Struct struct_value = 5;
    genai.ListValue list_value = 6;
    genai.Content content_value = 7;
  }
}

message ListValue {
  repeated genai.Value values = 1;
}

message GoogleSearch {
  enum SearchType {
    SEARCH_TYPE_UNSPECIFIED = 0;
    SEARCH_TYPE_WEB_SEARCH = 1;
    SEARCH_TYPE_IMAGE_SEARCH = 2;
    SEARCH_TYPE_ENTERPRISE_WEB_SEARCH = 3;
  }
  repeated genai.GoogleSearch.SearchType search_types = 1;
}

message ThoughtContent {
  bytes signature = 7;
  repeated genai.ThoughtSummaryContent summary = 9;
}

message ThoughtSummaryContent {
  oneof type {
    genai.TextContent text = 1;
    genai.ImageContent image = 2;
  }
}

message Turn {
  string role = 1;
  oneof content {
    genai.ContentList content_list = 3;
    string content_string = 4;
  }
}

message TurnList {
  repeated genai.Turn turns = 1;
}

message ToolCallContent {
  string id = 1;
  bytes signature = 9;
  oneof type {
    genai.FunctionCallContent function_call = 2;
    genai.CodeExecutionCallContent code_execution_call = 3;
    genai.UrlContextCallContent url_context_call = 4;
    genai.McpServerToolCallContent mcp_server_tool_call = 6;
    genai.GoogleSearchCallContent google_search_call = 7;
    genai.FileSearchCallContent file_search_call = 8;
    genai.GoogleMapsCallContent google_maps_call = 10;
  }
}

message ToolResultContent {
  string call_id = 8;
  bytes signature = 9;
  oneof type {
    genai.FunctionResultContent function_result = 2;
    genai.CodeExecutionResultContent code_execution_result = 3;
    genai.UrlContextResultContent url_context_result = 4;
    genai.GoogleSearchResultContent google_search_result = 5;
    genai.McpServerToolResultContent mcp_server_tool_result = 6;
    genai.FileSearchResultContent file_search_result = 7;
    genai.GoogleMapsResultContent google_maps_result = 10;
  }
}

message FunctionCallContent {
  string name = 3;
  genai.Struct arguments = 4;
}

message FunctionResultContent {
  string name = 8;
  bool is_error = 2;
  oneof result {
    genai.Struct struct_result = 3;
    genai.FunctionResultSubcontentList content_list = 9;
    string string_result = 7;
  }
}

message CodeExecutionCallContent {
  message CodeExecutionCallArguments {
    enum Language {
      LANGUAGE_UNSPECIFIED = 0;
      PYTHON = 1;
    }
    genai.CodeExecutionCallContent.CodeExecutionCallArguments.Language language = 1;
    string code = 2;
  }
  genai.CodeExecutionCallContent.CodeExecutionCallArguments arguments = 2;
}

message CodeExecutionResultContent {
  string result = 1;
  bool is_error = 2;
}

message UrlContextCallContent {
  message UrlContextCallArguments {
    repeated string urls = 1;
  }
  genai.UrlContextCallContent.UrlContextCallArguments arguments = 2;
}

message UrlContextResultContent {
  message UrlContextResult {
    enum Status {
      STATUS_UNSPECIFIED = 0;
      SUCCESS = 1;
      ERROR = 2;
      PAYWALL = 3;
      UNSAFE = 4;
    }
    string url = 1;
    genai.UrlContextResultContent.UrlContextResult.Status status = 2;
  }
  repeated genai.UrlContextResultContent.UrlContextResult result = 2;
  bool is_error = 3;
}

message McpServerToolCallContent {
  string name = 1;
  string server_name = 2;
  genai.Struct arguments = 3;
}

message McpServerToolResultContent {
  string name = 1;
  string server_name = 2;
  oneof result {
    genai.Struct struct_result = 3;
    genai.FunctionResultSubcontentList content_list = 6;
    string string_result = 4;
  }
}

message GoogleSearchCallContent {
  message GoogleSearchCallArguments {
    repeated string queries = 1;
  }
  genai.GoogleSearchCallContent.GoogleSearchCallArguments arguments = 1;
  genai.GoogleSearch.SearchType search_type = 2;
}

message GoogleSearchResultContent {
  message GoogleSearchResult {
    string search_suggestions = 5;
  }
  repeated genai.GoogleSearchResultContent.GoogleSearchResult result = 2;
  bool is_error = 3;
}

message FileSearchCallContent {
}

message FileSearchResultContent {
  message FileSearchResult {
  }
  repeated genai.FileSearchResultContent.FileSearchResult result = 1;
}

message GoogleMapsCallContent {
  message GoogleMapsCallArguments {
    repeated string queries = 1;
  }
  genai.GoogleMapsCallContent.GoogleMapsCallArguments arguments = 1;
}

message GoogleMapsResultContent {
  message GoogleMapsResult {
    message Places {
      string place_id = 1;
      string name = 2;
      string url = 3;
      repeated genai.ReviewSnippet review_snippets = 4;
    }
    repeated genai.GoogleMapsResultContent.GoogleMapsResult.Places places = 1;
    string widget_context_token = 2;
  }
  repeated genai.GoogleMapsResultContent.GoogleMapsResult result = 1;
}

message FunctionResultSubcontent {
  oneof type {
    genai.TextContent text = 1;
    genai.ImageContent image = 2;
  }
}

message FunctionResultSubcontentList {
  repeated genai.FunctionResultSubcontent contents = 1;
}