summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-08-21 00:28:33 -0500
committerJeff Carr <[email protected]>2025-08-21 00:28:33 -0500
commitcdcd0fe38e50ef992de8e590fb5c3b0b4992722e (patch)
treed5b3861b29abbd9ed69ef6688a114c3635df0b0a
day1
-rw-r--r--.gitignore5
-rw-r--r--Makefile16
-rw-r--r--chat.proto25
-rw-r--r--make_chat.go60
4 files changed, 106 insertions, 0 deletions
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)
+}