syntax = "proto3"; package chatpb; import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp message Row { repeated string fields = 1; } message Table { int32 columns = 1; repeated Row rows = 2; } enum Who { NOONE = 0; GEMINI = 1; USER = 2; } // NEW: A message to hold all the details of a tool call message ToolCall { string name = 1; // e.g., "Shell" string input = 2; // The command that was run string description = 3; // The description for the command string output_stdout = 4; string output_stderr = 5; int32 exit_code = 6; } message Chat { Who from = 1; google.protobuf.Timestamp ctime = 2; string content = 3; Table table = 4; repeated ToolCall ToolCalls = 5; string ContentFile = 6; // `autogenpb:unique` `autogenpb:sort` string uuid = 7; // `autogenpb:unique` `autogenpb:sort` } message Chats { // `autogenpb:marshal` `autogenpb:mutex` string uuid = 1; // `autogenpb:uuid:9fd31f10-c25d-4d66-bc8d-5f6eb7c79057` string version = 2; // `autogenpb:version:v0.0.1` repeated Chat Chats = 3; // THIS MUST BE Chat and then Chats }