From cdcd0fe38e50ef992de8e590fb5c3b0b4992722e Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 21 Aug 2025 00:28:33 -0500 Subject: [PATCH] day1 --- .gitignore | 5 +++++ Makefile | 16 ++++++++++++++ chat.proto | 25 ++++++++++++++++++++++ make_chat.go | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 chat.proto create mode 100644 make_chat.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3429a71 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +go.* +*.swp +*.patch +*.mbox +*.pb.go diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7090a06 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +all: clean chat.pb.go goimports vet + echo okay? + +goimports: + goimports -w *.go + +chat.pb.go: chat.proto + autogenpb --proto chat.proto + +clean: + rm -f *.pb.go *.patch + -rm -f go.* + +vet: + @GO111MODULE=off go vet + @echo this go library package builds okay diff --git a/chat.proto b/chat.proto new file mode 100644 index 0000000..addf823 --- /dev/null +++ b/chat.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package chatpb; + +message Row { + repeated string fields = 1; +} + +message Table { + int32 columns = 1; + repeated Row rows = 2; +} + +message Chat { + bool gemini = 1; + bool user = 2; + string content = 3; + Table table = 4; +} + +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 +} diff --git a/make_chat.go b/make_chat.go new file mode 100644 index 0000000..26c4ea3 --- /dev/null +++ b/make_chat.go @@ -0,0 +1,60 @@ +package chatpb + +import "go.wit.com/log" + +func TestChat() { + conversation := NewChats() + + chat := new(Chat) + chat.Content = "this was fun" + + t := new(Table) + t.Columns = 4 + // t.Rows = append(t.Rows, []string{"a", "b"}) + chat.Table = t + + r := new(Row) + r.Fields = []string{"a", "b"} + t.Rows = append(t.Rows, r) + + r = new(Row) + r.Fields = []string{"1", "", "2", "3"} + t.Rows = append(t.Rows, r) + + conversation.Append(chat) + + conversation.AddGeminiComment("I like astronomy") + + dump := conversation.FormatTEXT() + + log.Println(dump) +} + +func (c *Chats) AddTable() { + chat := new(Chat) + + t := new(Table) + t.Columns = 4 + // t.Rows = append(t.Rows, []string{"a", "b"}) + + r := new(Row) + r.Fields = []string{"a", "b"} + t.Rows = append(t.Rows, r) + + r = new(Row) + r.Fields = []string{"1", "", "2", "3"} + t.Rows = append(t.Rows, r) + + chat.Table = t + + c.Append(chat) +} + +func (c *Chats) AddGeminiComment(s string) { + chat := new(Chat) + + chat.Gemini = true + chat.Content = s + + c.Append(chat) +}