Skip to content

Commit f1c0f69

Browse files
committed
chore: update dependencies
1 parent dfeb60d commit f1c0f69

File tree

4 files changed

+139
-7
lines changed

4 files changed

+139
-7
lines changed

components/message_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package components
2+
3+
import (
4+
"bytes"
5+
"encoding/json"
6+
"testing"
7+
8+
"github.com/bububa/atomic-agents/schema"
9+
)
10+
11+
func TestMessageMarshaler(t *testing.T) {
12+
var buf bytes.Buffer
13+
enc := json.NewEncoder(&buf)
14+
dec := json.NewDecoder(&buf)
15+
msg := NewMessage(UserRole, schema.NewString("test string schema"))
16+
if err := enc.Encode(msg); err != nil {
17+
t.Fatal(err)
18+
return
19+
}
20+
var decodeMsg Message
21+
if err := dec.Decode(&decodeMsg); err != nil {
22+
t.Fatal(err)
23+
return
24+
}
25+
if decodeMsg.StringifiedContent() != msg.StringifiedContent() {
26+
t.Errorf("string match error, expect:%s, got:%s", msg.StringifiedContent(), decodeMsg.StringifiedContent())
27+
}
28+
t.Fatal("failed")
29+
}

go.mod

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,20 @@ require (
2020
github.com/ledongthuc/pdf v0.0.0-20250511090121-5959a4027728
2121
github.com/liushuangls/go-anthropic/v2 v2.15.2
2222
github.com/milvus-io/milvus-sdk-go/v2 v2.4.2
23-
github.com/openai/openai-go v1.2.0
23+
github.com/openai/openai-go v1.3.0
2424
github.com/philippgille/chromem-go v0.7.0
2525
github.com/pkoukk/tiktoken-go v0.1.7
2626
github.com/rs/xid v1.6.0
2727
github.com/xuri/excelize/v2 v2.9.1
2828
gitlab.com/golang-commonmark/markdown v0.0.0-20211110145824-bf3e522c626a
2929
go.uber.org/atomic v1.11.0
30-
google.golang.org/genai v1.7.0
30+
google.golang.org/genai v1.9.0
3131
gopkg.in/yaml.v3 v3.0.1
3232
)
3333

3434
require (
3535
cloud.google.com/go v0.121.2 // indirect
36-
cloud.google.com/go/auth v0.16.1 // indirect
36+
cloud.google.com/go/auth v0.16.2 // indirect
3737
cloud.google.com/go/compute/metadata v0.7.0 // indirect
3838
github.com/BurntSushi/toml v1.5.0 // indirect
3939
github.com/JohannesKaufmann/dom v0.2.0 // indirect
@@ -77,15 +77,15 @@ require (
7777
github.com/kr/text v0.2.0 // indirect
7878
github.com/leodido/go-urn v1.4.0 // indirect
7979
github.com/mailru/easyjson v0.9.0 // indirect
80-
github.com/mark3labs/mcp-go v0.30.1 // indirect
80+
github.com/mark3labs/mcp-go v0.31.0 // indirect
8181
github.com/milvus-io/milvus-proto/go-api/v2 v2.5.13 // indirect
8282
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
8383
github.com/modern-go/reflect2 v1.0.2 // indirect
8484
github.com/pkg/errors v0.9.1 // indirect
8585
github.com/richardlehane/mscfb v1.0.4 // indirect
8686
github.com/richardlehane/msoleps v1.0.4 // indirect
8787
github.com/rogpeppe/go-internal v1.14.1 // indirect
88-
github.com/spf13/cast v1.8.0 // indirect
88+
github.com/spf13/cast v1.9.2 // indirect
8989
github.com/tidwall/gjson v1.18.0 // indirect
9090
github.com/tidwall/match v1.1.1 // indirect
9191
github.com/tidwall/pretty v1.2.1 // indirect
@@ -110,8 +110,8 @@ require (
110110
golang.org/x/sync v0.14.0 // indirect
111111
golang.org/x/sys v0.33.0 // indirect
112112
golang.org/x/text v0.25.0 // indirect
113-
google.golang.org/api v0.235.0 // indirect
114-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect
113+
google.golang.org/api v0.236.0 // indirect
114+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
115115
google.golang.org/grpc v1.72.2 // indirect
116116
google.golang.org/protobuf v1.36.6 // indirect
117117
)

go.sum

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ cloud.google.com/go v0.121.2 h1:v2qQpN6Dx9x2NmwrqlesOt3Ys4ol5/lFZ6Mg1B7OJCg=
33
cloud.google.com/go v0.121.2/go.mod h1:nRFlrHq39MNVWu+zESP2PosMWA0ryJw8KUBZ2iZpxbw=
44
cloud.google.com/go/auth v0.16.1 h1:XrXauHMd30LhQYVRHLGvJiYeczweKQXZxsTbV9TiguU=
55
cloud.google.com/go/auth v0.16.1/go.mod h1:1howDHJ5IETh/LwYs3ZxvlkXF48aSqqJUM+5o02dNOI=
6+
cloud.google.com/go/auth v0.16.2 h1:QvBAGFPLrDeoiNjyfVunhQ10HKNYuOwZ5noee0M5df4=
7+
cloud.google.com/go/auth v0.16.2/go.mod h1:sRBas2Y1fB1vZTdurouM0AzuYQBMZinrUYL8EufhtEA=
68
cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU=
79
cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo=
810
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
@@ -162,6 +164,8 @@ github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4
162164
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
163165
github.com/mark3labs/mcp-go v0.30.1 h1:3R1BPvNT/rC1iPpLx+EMXFy+gvux/Mz/Nio3c6XEU9E=
164166
github.com/mark3labs/mcp-go v0.30.1/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4=
167+
github.com/mark3labs/mcp-go v0.31.0 h1:4UxSV8aM770OPmTvaVe/b1rA2oZAjBMhGBfUgOGut+4=
168+
github.com/mark3labs/mcp-go v0.31.0/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4=
165169
github.com/milvus-io/milvus-proto/go-api/v2 v2.5.13 h1:oa0VBlDYyV3hNuRsNhXn6nGY8RFuuBtb7BaMqTcpJBI=
166170
github.com/milvus-io/milvus-proto/go-api/v2 v2.5.13/go.mod h1:/6UT4zZl6awVeXLeE7UGDWZvXj3IWkRsh3mqsn0DiAs=
167171
github.com/milvus-io/milvus-sdk-go/v2 v2.4.2 h1:Xqf+S7iicElwYoS2Zly8Nf/zKHuZsNy1xQajfdtygVY=
@@ -173,6 +177,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
173177
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
174178
github.com/openai/openai-go v1.2.0 h1:6pcZcz1u/hYeSn6KXil3AKXks3+wKPTWKgpuq8eQbU0=
175179
github.com/openai/openai-go v1.2.0/go.mod h1:g461MYGXEXBVdV5SaR/5tNzNbSfwTBBefwc+LlDCK0Y=
180+
github.com/openai/openai-go v1.3.0 h1:lBpvgXxGHUufk9DNTguval40y2oK0GHZwgWQyUtjPIQ=
181+
github.com/openai/openai-go v1.3.0/go.mod h1:g461MYGXEXBVdV5SaR/5tNzNbSfwTBBefwc+LlDCK0Y=
176182
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
177183
github.com/philippgille/chromem-go v0.7.0 h1:4jfvfyKymjKNfGxBUhHUcj1kp7B17NL/I1P+vGh1RvY=
178184
github.com/philippgille/chromem-go v0.7.0/go.mod h1:hTd+wGEm/fFPQl7ilfCwQXkgEUxceYh86iIdoKMolPo=
@@ -206,6 +212,8 @@ github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NF
206212
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
207213
github.com/spf13/cast v1.8.0 h1:gEN9K4b8Xws4EX0+a0reLmhq8moKn7ntRlQYgjPeCDk=
208214
github.com/spf13/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
215+
github.com/spf13/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE=
216+
github.com/spf13/cast v1.9.2/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
209217
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
210218
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
211219
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
@@ -392,15 +400,21 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
392400
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
393401
google.golang.org/api v0.235.0 h1:C3MkpQSRxS1Jy6AkzTGKKrpSCOd2WOGrezZ+icKSkKo=
394402
google.golang.org/api v0.235.0/go.mod h1:QpeJkemzkFKe5VCE/PMv7GsUfn9ZF+u+q1Q7w6ckxTg=
403+
google.golang.org/api v0.236.0 h1:CAiEiDVtO4D/Qja2IA9VzlFrgPnK3XVMmRoJZlSWbc0=
404+
google.golang.org/api v0.236.0/go.mod h1:X1WF9CU2oTc+Jml1tiIxGmWFK/UZezdqEu09gcxZAj4=
395405
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
396406
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
397407
google.golang.org/genai v1.7.0 h1:DMOaygzMDUapj280sXBDvkaoY8kvSCJqsdH0iHbQBKA=
398408
google.golang.org/genai v1.7.0/go.mod h1:TyfOKRz/QyCaj6f/ZDt505x+YreXnY40l2I6k8TvgqY=
409+
google.golang.org/genai v1.9.0 h1:pdLxlAZnIWY/2mUozQ7nKZvspDCjHCiOxB0Uy9C1hvk=
410+
google.golang.org/genai v1.9.0/go.mod h1:TyfOKRz/QyCaj6f/ZDt505x+YreXnY40l2I6k8TvgqY=
399411
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
400412
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
401413
google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
402414
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE=
403415
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
416+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE=
417+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
404418
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
405419
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
406420
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=

schema/helper.go

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package schema
2+
3+
import (
4+
"bytes"
5+
"encoding/binary"
6+
"fmt"
7+
"io"
8+
)
9+
10+
// --- Helper functions for binary marshaling/unmarshaling slices ---
11+
12+
// writeStringSlice writes a slice of strings to the buffer.
13+
// Format: int32 (count) + for each string: (int32 (length) + bytes)
14+
func writeStringSlice(buf *bytes.Buffer, sl []string) error {
15+
if err := binary.Write(buf, binary.LittleEndian, int32(len(sl))); err != nil {
16+
return fmt.Errorf("failed to write slice length: %w", err)
17+
}
18+
for _, s := range sl {
19+
sBytes := []byte(s)
20+
if err := binary.Write(buf, binary.LittleEndian, int32(len(sBytes))); err != nil {
21+
return fmt.Errorf("failed to write string length: %w", err)
22+
}
23+
if _, err := buf.Write(sBytes); err != nil {
24+
return fmt.Errorf("failed to write string bytes: %w", err)
25+
}
26+
}
27+
return nil
28+
}
29+
30+
// readStringSlice reads a slice of strings from the reader.
31+
func readStringSlice(reader *bytes.Reader) ([]string, error) {
32+
var count int32
33+
if err := binary.Read(reader, binary.LittleEndian, &count); err != nil {
34+
return nil, fmt.Errorf("failed to read slice length: %w", err)
35+
}
36+
37+
sl := make([]string, count)
38+
for i := range int(count) {
39+
var strLen int32
40+
if err := binary.Read(reader, binary.LittleEndian, &strLen); err != nil {
41+
return nil, fmt.Errorf("failed to read string length for element %d: %w", i, err)
42+
}
43+
strBytes := make([]byte, strLen)
44+
if _, err := io.ReadFull(reader, strBytes); err != nil {
45+
return nil, fmt.Errorf("failed to read string bytes for element %d: %w", i, err)
46+
}
47+
sl[i] = string(strBytes)
48+
}
49+
return sl, nil
50+
}
51+
52+
// writeBytesSliceSlice writes a slice of byte slices (representing file contents) to the buffer.
53+
// Format: int32 (outer slice count) + for each inner []byte: (int32 (length) + bytes)
54+
func writeBytesSliceSlice(buf *bytes.Buffer, sl [][]byte) error {
55+
if err := binary.Write(buf, binary.LittleEndian, int32(len(sl))); err != nil {
56+
return fmt.Errorf("failed to write outer slice length: %w", err)
57+
}
58+
for _, bSlice := range sl {
59+
if err := binary.Write(buf, binary.LittleEndian, int32(len(bSlice))); err != nil {
60+
return fmt.Errorf("failed to write inner slice length: %w", err)
61+
}
62+
if _, err := buf.Write(bSlice); err != nil {
63+
return fmt.Errorf("failed to write inner slice bytes: %w", err)
64+
}
65+
}
66+
return nil
67+
}
68+
69+
// readBytesSliceSlice reads a slice of byte slices from the reader.
70+
func readBytesSliceSlice(reader *bytes.Reader) ([][]byte, error) {
71+
var count int32
72+
if err := binary.Read(reader, binary.LittleEndian, &count); err != nil {
73+
return nil, fmt.Errorf("failed to read outer slice length: %w", err)
74+
}
75+
76+
sl := make([][]byte, count)
77+
for i := range int(count) {
78+
var byteLen int32
79+
if err := binary.Read(reader, binary.LittleEndian, &byteLen); err != nil {
80+
return nil, fmt.Errorf("failed to read inner slice length for element %d: %w", i, err)
81+
}
82+
bSlice := make([]byte, byteLen)
83+
if _, err := io.ReadFull(reader, bSlice); err != nil {
84+
return nil, fmt.Errorf("failed to read inner slice bytes for element %d: %w", i, err)
85+
}
86+
sl[i] = bSlice
87+
}
88+
return sl, nil
89+
}

0 commit comments

Comments
 (0)