diff --git a/Makefile b/Makefile index 7090a06..edc546f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,4 @@ all: clean chat.pb.go goimports vet - echo okay? goimports: goimports -w *.go diff --git a/chat.proto b/chat.proto index 79d2ce5..f2154eb 100644 --- a/chat.proto +++ b/chat.proto @@ -29,6 +29,11 @@ message ToolCall { int32 exit_code = 6; } +message CodeSnippet { + string filename = 1; + string content = 2; +} + message Chat { Who from = 1; google.protobuf.Timestamp ctime = 2; @@ -37,6 +42,7 @@ message Chat { repeated ToolCall ToolCalls = 5; string ContentFile = 6; // `autogenpb:unique` `autogenpb:sort` string uuid = 7; // `autogenpb:unique` `autogenpb:sort` + repeated CodeSnippet Snippets = 8; } message Chats { // `autogenpb:marshal` `autogenpb:mutex` diff --git a/example.go b/example.go index d22f39c..ff33b05 100644 --- a/example.go +++ b/example.go @@ -10,7 +10,12 @@ func ExampleChat() *Chats { t := conversation.AddTable() t.AddRow([]string{"apple", "pear"}) - conversation.AddGeminiComment("funny") + gchat := conversation.AddGeminiComment("funny") + + snip := new(CodeSnippet) + snip.Filename = "log/snip1.txt" + gchat.Snippets = append(gchat.Snippets, snip) + conversation.AddUserComment("yes") conversation.AddGeminiComment("I like astronomy") diff --git a/helpers.go b/helpers.go new file mode 100644 index 0000000..8f63de0 --- /dev/null +++ b/helpers.go @@ -0,0 +1,42 @@ +package chatpb + +import ( + "time" + + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +func (c *Chats) AddGeminiComment(s string) *Chat { + chat := new(Chat) + + chat.From = Who_GEMINI + chat.Content = s + chat.Ctime = timestamppb.New(time.Now()) + + c.Append(chat) + + return chat +} + +func (c *Chats) AddUserComment(s string) *Chat { + chat := new(Chat) + + chat.From = Who_USER + chat.Content = s + + c.Append(chat) + + return chat +} + +func UnmarshalChats(data []byte) (*Chats, error) { + c := new(Chats) + err := c.Unmarshal(data) + return c, err +} + +func UnmarshalChatsTEXT(data []byte) (*Chats, error) { + c := new(Chats) + err := c.UnmarshalTEXT(data) + return c, err +} diff --git a/make_chat.go b/make_chat.go index 5c7cb75..d6616a1 100644 --- a/make_chat.go +++ b/make_chat.go @@ -1,10 +1,7 @@ package chatpb import ( - "time" - "go.wit.com/log" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) func TestChat() { @@ -70,34 +67,3 @@ func (c *Chats) AddTable() *Table { return t } - -func (c *Chats) AddGeminiComment(s string) { - chat := new(Chat) - - chat.From = Who_GEMINI - chat.Content = s - chat.Ctime = timestamppb.New(time.Now()) - - c.Append(chat) -} - -func (c *Chats) AddUserComment(s string) { - chat := new(Chat) - - chat.From = Who_USER - chat.Content = s - - c.Append(chat) -} - -func UnmarshalChats(data []byte) (*Chats, error) { - c := new(Chats) - err := c.Unmarshal(data) - return c, err -} - -func UnmarshalChatsTEXT(data []byte) (*Chats, error) { - c := new(Chats) - err := c.UnmarshalTEXT(data) - return c, err -}