193 lines
9.0 KiB
Protocol Buffer
193 lines
9.0 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package chatpb;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "google/protobuf/struct.proto";
|
|
|
|
// Main request structure
|
|
|
|
message GeminiRequest { // `autogenpb:marshal` `autogenpb:mutex`
|
|
string model = 1;
|
|
Config config = 2;
|
|
repeated Content contents = 3;
|
|
}
|
|
|
|
// Abort signal for the request
|
|
message AbortSignal {
|
|
}
|
|
|
|
message Schema {
|
|
string type = 1;
|
|
map<string, Schema> properties = 2;
|
|
repeated string required = 3;
|
|
string description = 4;
|
|
Schema items = 5;
|
|
repeated string enum = 6;
|
|
int32 minimum = 7;
|
|
int32 minLength = 8;
|
|
int32 minItems = 9;
|
|
google.protobuf.Value default_value = 10 [json_name = "default"];
|
|
}
|
|
|
|
message FunctionDeclaration {
|
|
string name = 1;
|
|
string description = 2;
|
|
Schema parameters_json_schema = 3;
|
|
}
|
|
|
|
message Tool {
|
|
repeated FunctionDeclaration functionDeclarations = 1;
|
|
}
|
|
|
|
// Configuration for the request
|
|
message Config {
|
|
message ThinkingConfig {
|
|
bool includeThoughts = 1;
|
|
}
|
|
double temperature = 2;
|
|
double topP = 3;
|
|
string systemInstruction = 4;
|
|
ResponseJsonSchema responseJsonSchema = 5;
|
|
string responseMimeType = 6;
|
|
AbortSignal abort_signal = 7;
|
|
ThinkingConfig thinkingConfig = 8;
|
|
repeated Tool tools = 9;
|
|
}
|
|
// JSON schema for the response
|
|
message ResponseJsonSchema {
|
|
string type = 1;
|
|
Properties properties = 2;
|
|
repeated string required = 3;
|
|
}
|
|
|
|
// Properties within the JSON schema
|
|
message Properties {
|
|
Reasoning reasoning = 1;
|
|
NextSpeaker next_speaker = 2;
|
|
}
|
|
|
|
// Reasoning property
|
|
message Reasoning {
|
|
string type = 1;
|
|
string description = 2;
|
|
}
|
|
|
|
// Next speaker property
|
|
message NextSpeaker {
|
|
string type = 1;
|
|
repeated string enum = 2;
|
|
string description = 3;
|
|
}
|
|
|
|
// Content of the chat
|
|
message Content {
|
|
string role = 1;
|
|
repeated Part parts = 2;
|
|
}
|
|
|
|
// Part of the content
|
|
message Part {
|
|
oneof part_type {
|
|
string text = 1;
|
|
FunctionCall functionCall = 2;
|
|
FunctionResponse functionResponse = 3;
|
|
}
|
|
string thoughtSignature = 4;
|
|
}
|
|
// Function call
|
|
message FunctionCall {
|
|
string name = 1;
|
|
argsInfo args = 3;
|
|
}
|
|
|
|
message argsInfo {
|
|
string absolute_path = 1;
|
|
string description = 2;
|
|
string command = 3;
|
|
string new_string = 4;
|
|
string old_string = 5;
|
|
int32 expected_replacements = 6;
|
|
string file_path = 7;
|
|
string directory = 8;
|
|
string path = 9;
|
|
string thinkingConfig = 10;
|
|
string pattern = 11;
|
|
string content = 12;
|
|
string fact = 13;
|
|
}
|
|
|
|
// Function response
|
|
message FunctionResponse {
|
|
string id = 1;
|
|
string name = 2;
|
|
Response response = 3;
|
|
}
|
|
|
|
// Response from a function call
|
|
message Response {
|
|
string output = 1;
|
|
string error = 2;
|
|
}
|
|
|
|
message Row {
|
|
repeated string fields = 1;
|
|
}
|
|
|
|
message Table {
|
|
int32 columns = 1;
|
|
repeated Row rows = 2;
|
|
}
|
|
|
|
enum Who {
|
|
NOONE = 0;
|
|
REGEX = 1;
|
|
USER = 2;
|
|
}
|
|
|
|
message ToolCall {
|
|
string name = 1;
|
|
string input = 2;
|
|
string description = 3;
|
|
string output_stdout = 4;
|
|
string output_stderr = 5;
|
|
int32 exit_code = 6;
|
|
}
|
|
|
|
message CodeSnippet {
|
|
string filename = 1;
|
|
string content = 2;
|
|
}
|
|
|
|
message ChatEntry {
|
|
Who from = 1;
|
|
google.protobuf.Timestamp ctime = 2;
|
|
string content = 3;
|
|
Table table = 4;
|
|
repeated ToolCall ToolCalls = 5;
|
|
string ContentFile = 6;
|
|
string uuid = 7;
|
|
repeated CodeSnippet Snippets = 8;
|
|
repeated Part parts = 9;
|
|
GeminiRequest GeminiRequest = 10;
|
|
int32 RequestCounter = 11;
|
|
}
|
|
|
|
message SessionStats {
|
|
string uuid = 1;
|
|
}
|
|
|
|
message Chat {
|
|
string uuid = 1; // `autogenpb:unique` `autogenpb:sort`
|
|
google.protobuf.Timestamp ctime = 2;
|
|
string ChatName = 3;
|
|
repeated ChatEntry Entries = 4;
|
|
repeated SessionStats Session = 5;
|
|
}
|
|
|
|
message Chats { // `autogenpb:marshal` `autogenpb:mutex`
|
|
string uuid = 1; // `autogenpb:uuid:9fd31f10-c25d-4d66-bc8d-5f6eb7c79057` `autogenpb:primary`
|
|
string version = 2; // `autogenpb:version:v0.0.1`
|
|
repeated Chat Chats = 3; // THIS MUST BE Chat and then Chats
|
|
}
|