Skip to content

Commit 43df9e9

Browse files
Merge branch 'main' into feat/adk_filesystem
2 parents 71388a9 + d45f69c commit 43df9e9

File tree

109 files changed

+13275
-537
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+13275
-537
lines changed

.github/workflows/typos.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ ot = "ot"
33
OT = "OT"
44
typ = "typ"
55
Typ = "Typ"
6+
Rabit = "Rabit"
67

78
[files]
89
extend-exclude = ["**/*.test.txt"]

callbacks/cozeloop/convert.go

Lines changed: 145 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package cozeloop
1818

1919
import (
2020
"context"
21+
"fmt"
22+
"log"
2123

2224
"github.com/bytedance/sonic"
2325
"github.com/coze-dev/cozeloop-go/spec/tracespec"
@@ -76,21 +78,16 @@ func convertModelMessage(message *schema.Message) *tracespec.ModelMessage {
7678
ToolCallID: message.ToolCallID,
7779
ReasoningContent: message.ReasoningContent,
7880
}
81+
if message.Role == schema.Tool {
82+
msg.Name = message.ToolName
83+
}
7984

80-
for i := range message.MultiContent {
81-
part := message.MultiContent[i]
82-
83-
msg.Parts[i] = &tracespec.ModelMessagePart{
84-
Type: tracespec.ModelMessagePartType(part.Type),
85-
Text: part.Text,
86-
}
87-
88-
if part.ImageURL != nil {
89-
msg.Parts[i].ImageURL = &tracespec.ModelImageURL{
90-
URL: part.ImageURL.URL,
91-
Detail: string(part.ImageURL.Detail),
92-
}
93-
}
85+
if len(message.UserInputMultiContent) > 0 {
86+
msg.Parts = convertUserInputMultiContent(message.UserInputMultiContent)
87+
} else if len(message.AssistantGenMultiContent) > 0 {
88+
msg.Parts = convertAssistantGenMultiContent(message.AssistantGenMultiContent)
89+
} else {
90+
msg.Parts = convertMultiContent(message.MultiContent)
9491
}
9592

9693
for i := range message.ToolCalls {
@@ -118,6 +115,140 @@ func convertModelMessage(message *schema.Message) *tracespec.ModelMessage {
118115
return msg
119116
}
120117

118+
func convertUserInputMultiContent(parts []schema.MessageInputPart) []*tracespec.ModelMessagePart {
119+
var result []*tracespec.ModelMessagePart
120+
for _, part := range parts {
121+
sign := GetBase64ThoughtSignatureFromExtra(part.Extra)
122+
switch part.Type {
123+
case schema.ChatMessagePartTypeText:
124+
result = append(result, &tracespec.ModelMessagePart{
125+
Type: tracespec.ModelMessagePartType(part.Type),
126+
Text: part.Text,
127+
Signature: sign,
128+
})
129+
130+
case schema.ChatMessagePartTypeImageURL:
131+
if part.Image == nil {
132+
continue
133+
}
134+
135+
if part.Image.MessagePartCommon.URL != nil {
136+
result = append(result, &tracespec.ModelMessagePart{
137+
Type: tracespec.ModelMessagePartType(part.Type),
138+
ImageURL: &tracespec.ModelImageURL{
139+
URL: *part.Image.MessagePartCommon.URL,
140+
Detail: string(part.Image.Detail),
141+
},
142+
Signature: sign,
143+
})
144+
}
145+
if part.Image.MessagePartCommon.Base64Data != nil {
146+
result = append(result, &tracespec.ModelMessagePart{
147+
Type: tracespec.ModelMessagePartType(part.Type),
148+
ImageURL: &tracespec.ModelImageURL{
149+
URL: fmt.Sprintf("data:%s;base64,%s", part.Image.MessagePartCommon.MIMEType, *part.Image.MessagePartCommon.Base64Data),
150+
Detail: string(part.Image.Detail),
151+
},
152+
Signature: sign,
153+
})
154+
}
155+
156+
case schema.ChatMessagePartTypeFileURL:
157+
if part.File == nil {
158+
continue
159+
}
160+
if part.File.MessagePartCommon.URL != nil {
161+
result = append(result, &tracespec.ModelMessagePart{
162+
Type: tracespec.ModelMessagePartType(part.Type),
163+
FileURL: &tracespec.ModelFileURL{
164+
URL: *part.File.MessagePartCommon.URL,
165+
},
166+
Signature: sign,
167+
})
168+
}
169+
if part.File.MessagePartCommon.Base64Data != nil {
170+
result = append(result, &tracespec.ModelMessagePart{
171+
Type: tracespec.ModelMessagePartType(part.Type),
172+
FileURL: &tracespec.ModelFileURL{
173+
URL: fmt.Sprintf("data:%s;base64,%s", part.File.MessagePartCommon.MIMEType, *part.File.MessagePartCommon.Base64Data),
174+
},
175+
Signature: sign,
176+
})
177+
}
178+
179+
default:
180+
log.Printf("unknown part type: %s", part.Type)
181+
}
182+
}
183+
return result
184+
}
185+
186+
func convertAssistantGenMultiContent(parts []schema.MessageOutputPart) []*tracespec.ModelMessagePart {
187+
var result []*tracespec.ModelMessagePart
188+
for _, part := range parts {
189+
sign := GetBase64ThoughtSignatureFromExtra(part.Extra)
190+
switch part.Type {
191+
case schema.ChatMessagePartTypeText:
192+
result = append(result, &tracespec.ModelMessagePart{
193+
Type: tracespec.ModelMessagePartType(part.Type),
194+
Text: part.Text,
195+
Signature: sign,
196+
})
197+
case schema.ChatMessagePartTypeImageURL:
198+
if part.Image == nil {
199+
continue
200+
}
201+
if part.Image.MessagePartCommon.URL != nil {
202+
result = append(result, &tracespec.ModelMessagePart{
203+
Type: tracespec.ModelMessagePartType(part.Type),
204+
ImageURL: &tracespec.ModelImageURL{
205+
URL: *part.Image.MessagePartCommon.URL,
206+
},
207+
Signature: sign,
208+
})
209+
}
210+
if part.Image.MessagePartCommon.Base64Data != nil {
211+
result = append(result, &tracespec.ModelMessagePart{
212+
Type: tracespec.ModelMessagePartType(part.Type),
213+
ImageURL: &tracespec.ModelImageURL{
214+
URL: *part.Image.MessagePartCommon.Base64Data,
215+
},
216+
Signature: sign,
217+
})
218+
}
219+
default:
220+
log.Printf("unknown part type: %s", part.Type)
221+
}
222+
}
223+
return result
224+
}
225+
226+
func convertMultiContent(parts []schema.ChatMessagePart) []*tracespec.ModelMessagePart {
227+
result := make([]*tracespec.ModelMessagePart, len(parts))
228+
for i := range parts {
229+
part := parts[i]
230+
231+
result[i] = &tracespec.ModelMessagePart{
232+
Type: tracespec.ModelMessagePartType(part.Type),
233+
Text: part.Text,
234+
}
235+
236+
if part.ImageURL != nil {
237+
result[i].ImageURL = &tracespec.ModelImageURL{
238+
URL: part.ImageURL.URL,
239+
Detail: string(part.ImageURL.Detail),
240+
}
241+
}
242+
243+
if part.FileURL != nil {
244+
result[i].FileURL = &tracespec.ModelFileURL{
245+
URL: part.FileURL.URL,
246+
}
247+
}
248+
}
249+
return result
250+
}
251+
121252
func addToolName(ctx context.Context, message *tracespec.ModelMessage) *tracespec.ModelMessage {
122253
if message == nil {
123254
return message

callbacks/cozeloop/go.mod

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ go 1.23.0
55
require (
66
github.com/bytedance/mockey v1.2.14
77
github.com/bytedance/sonic v1.14.1
8-
github.com/cloudwego/eino v0.6.0
8+
github.com/cloudwego/eino v0.7.21
99
github.com/coze-dev/cozeloop-go v0.1.17
10-
github.com/coze-dev/cozeloop-go/spec v0.1.7
10+
github.com/coze-dev/cozeloop-go/spec v0.1.8
1111
github.com/smartystreets/goconvey v1.8.1
12+
github.com/stretchr/testify v1.10.0
1213
)
1314

1415
require (
@@ -20,8 +21,9 @@ require (
2021
github.com/cloudwego/base64x v0.1.6 // indirect
2122
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
2223
github.com/dustin/go-humanize v1.0.1 // indirect
23-
github.com/eino-contrib/jsonschema v1.0.2 // indirect
24+
github.com/eino-contrib/jsonschema v1.0.3 // indirect
2425
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
26+
github.com/google/uuid v1.6.0 // indirect
2527
github.com/goph/emperror v0.17.2 // indirect
2628
github.com/gopherjs/gopherjs v1.17.2 // indirect
2729
github.com/json-iterator/go v1.1.12 // indirect

callbacks/cozeloop/go.sum

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
2+
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
13
github.com/airbrake/gobrake v3.6.1+incompatible/go.mod h1:wM4gu3Cn0W0K7GUuVWnlXZU11AGBXMILnrdOU8Kn00o=
24
github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=
35
github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=
@@ -20,36 +22,40 @@ github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFos
2022
github.com/certifi/gocertifi v0.0.0-20190105021004-abcd57078448/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4=
2123
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
2224
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
23-
github.com/cloudwego/eino v0.6.0 h1:pobGKMOfcQHVNhD9UT/HrvO0eYG6FC2ML/NKY2Eb9+Q=
24-
github.com/cloudwego/eino v0.6.0/go.mod h1:JNapfU+QUrFFpboNDrNOFvmz0m9wjBFHHCr77RH6a50=
25-
github.com/coze-dev/cozeloop-go v0.1.7 h1:Y9AbLFLJdYWGPJJecWScSeW8W4kY38CLzBx0/ha/lZ4=
26-
github.com/coze-dev/cozeloop-go v0.1.7/go.mod h1:rhHtKT9D8wdqd+X1heP2A7zNyTohuA16ESv+rhEClbE=
25+
github.com/cloudwego/eino v0.7.21 h1:kkq7hlHYzwkGOAMbY4ffym4oBT7e9g5hXpJTsZbhsik=
26+
github.com/cloudwego/eino v0.7.21/go.mod h1:nA8Vacmuqv3pqKBQbTWENBLQ8MmGmPt/WqiyLeB8ohQ=
2727
github.com/coze-dev/cozeloop-go v0.1.17 h1:oUd5B7O7BuaFgp8V9JtLui9YfIsDw0jFit8BsII4/qM=
2828
github.com/coze-dev/cozeloop-go v0.1.17/go.mod h1:lM7cmUEZlnAlQYdwfk4Li0SC3RdZ++QMHX75nvKceSc=
29-
github.com/coze-dev/cozeloop-go/spec v0.1.5 h1:tEQ82qlz9/HZv8MqyZq+043SaHs5C44MWslyGm5UcNI=
30-
github.com/coze-dev/cozeloop-go/spec v0.1.5/go.mod h1:/f3BrWehffwXIpd4b5rYIqktLd/v5dlLBw0h9F/LQIU=
31-
github.com/coze-dev/cozeloop-go/spec v0.1.7-0.20251124063846-a86c0c533c17 h1:pB3WAXqZr4GE2sQgLmCXIFeVaRVWz1UYP9J2E6LnL00=
32-
github.com/coze-dev/cozeloop-go/spec v0.1.7-0.20251124063846-a86c0c533c17/go.mod h1:/f3BrWehffwXIpd4b5rYIqktLd/v5dlLBw0h9F/LQIU=
33-
github.com/coze-dev/cozeloop-go/spec v0.1.7 h1:8/w1mVUQg3vVbkmqoF/KczTNjd8y3JsQ0Lx1JOE2Lhg=
34-
github.com/coze-dev/cozeloop-go/spec v0.1.7/go.mod h1:/f3BrWehffwXIpd4b5rYIqktLd/v5dlLBw0h9F/LQIU=
29+
github.com/coze-dev/cozeloop-go/spec v0.1.8 h1:hFVBj/C1B6mUNGH/q52kO2n1pXuTomG578RbKlfYLGk=
30+
github.com/coze-dev/cozeloop-go/spec v0.1.8/go.mod h1:/f3BrWehffwXIpd4b5rYIqktLd/v5dlLBw0h9F/LQIU=
3531
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
3632
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3733
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3834
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
3935
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4036
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
4137
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
42-
github.com/eino-contrib/jsonschema v1.0.2 h1:HaxruBMUdnXa7Lg/lX8g0Hk71ZIfdTZXmBQz0e3esr8=
43-
github.com/eino-contrib/jsonschema v1.0.2/go.mod h1:cpnX4SyKjWjGC7iN2EbhxaTdLqGjCi0e9DxpLYxddD4=
38+
github.com/eino-contrib/jsonschema v1.0.3 h1:2Kfsm1xlMV0ssY2nuxshS4AwbLFuqmPmzIjLVJ1Fsp0=
39+
github.com/eino-contrib/jsonschema v1.0.3/go.mod h1:cpnX4SyKjWjGC7iN2EbhxaTdLqGjCi0e9DxpLYxddD4=
4440
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
4541
github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
4642
github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI=
4743
github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98=
44+
github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
45+
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
46+
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
47+
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
4848
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
4949
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
5050
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
5151
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
52+
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
53+
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
5254
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
55+
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE=
56+
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
57+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
58+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
5359
github.com/goph/emperror v0.17.2 h1:yLapQcmEsO0ipe9p5TaN22djm3OFV/TfM/fcYP0/J18=
5460
github.com/goph/emperror v0.17.2/go.mod h1:+ZbQ+fUNO/6FNiUo0ujtMjhgad9Xa6fQL9KhH4LNHic=
5561
github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g=
@@ -89,12 +95,15 @@ github.com/nikolalohinski/gonja/v2 v2.3.1 h1:UGyLa6NDNq6dCGkFY33sziUssjTdh95xrYs
8995
github.com/nikolalohinski/gonja/v2 v2.3.1/go.mod h1:1Wcc/5huTu6y36e0sOFR1XQoFlylw3c3H3L5WOz0RDg=
9096
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
9197
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
98+
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
99+
github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
100+
github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM=
92101
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
102+
github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc=
103+
github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ=
93104
github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0=
94105
github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
95106
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
96-
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
97-
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
98107
github.com/pkg/errors v0.9.2-0.20201214064552-5dd12d0cfe7f h1:lJqhwddJVYAkyp72a4pwzMClI20xTwL7miDdm2W/KBM=
99108
github.com/pkg/errors v0.9.2-0.20201214064552-5dd12d0cfe7f/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
100109
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -142,14 +151,12 @@ golang.org/x/arch v0.11.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
142151
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
143152
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
144153
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
145-
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw=
146-
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
147154
golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8=
148155
golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI=
149156
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
157+
golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
158+
golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
150159
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
151-
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
152-
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
153160
golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
154161
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
155162
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -164,6 +171,8 @@ golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=
164171
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
165172
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
166173
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
174+
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
175+
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
167176
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
168177
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
169178
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

0 commit comments

Comments
 (0)