Skip to content

Commit f5c03fd

Browse files
committed
feat: update asyncmachine to v0.16 and new amhist
1 parent 07ebcec commit f5c03fd

File tree

12 files changed

+746
-69
lines changed

12 files changed

+746
-69
lines changed

LICENSE

Lines changed: 674 additions & 21 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,10 @@ Example: `arpc -f tmp/research.addr -- when . Requesting && echo "REQUESTING"`
526526
2. When the last connected agent (`.`) goes into state `Requesting`
527527
3. Print "REQUESTING" and exit
528528

529+
## License
530+
531+
To help keep AI open, this project migrated to **GPL** starting from `v0.3.0`.
532+
529533
## Acknowledgements
530534

531535
- [AtomicAgents](https://github.com/BrainBlend-AI/atomic-agents)

config/Taskfile.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ tasks:
4242
dir: '{{.SECAI_AGENT_DIR}}'
4343
cmd: arpc -d {{.SECAI_DIR}}
4444

45-
lazysql:
45+
lazysql: # TODO squall
4646
desc: Start lazysql for {{.SECAI_DIR}}/db.sqlite
4747
dir: '{{.SECAI_AGENT_DIR}}'
4848
cmd: lazysql {{.SECAI_DIR}}/db.sqlite

examples/cook/agent.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ func (a *Agent) initMem() error {
274274
var err error
275275
mach := a.Mach()
276276
if a.mem != nil {
277-
a.MemCutoff.Add(a.mem.TimeSum(nil))
277+
a.MemCutoff.Add(a.mem.Time(nil).Sum(nil))
278278
}
279279

280280
a.mem, err = am.NewCommon(mach.Ctx(), "memory-cook", baseschema.MemSchema,
@@ -377,7 +377,7 @@ func (a *Agent) initStories() {
377377
Label: "Waking up",
378378
Desc: "This button shows the progress of waking up",
379379
Value: func() int {
380-
return mach.CountActive(schema.CookGroups.BootGenReady)
380+
return len(mach.ActiveStates(schema.CookGroups.BootGenReady))
381381
},
382382
ValueEnd: func() int {
383383
return len(schema.CookGroups.BootGen)
@@ -451,12 +451,12 @@ func (a *Agent) initStories() {
451451
Buttons: []shared.StoryButton{
452452
{
453453
Value: func() int {
454-
return a.mem.CountActive(a.allSteps())
454+
return len(a.mem.ActiveStates(a.allSteps()))
455455
},
456456
ValueEnd: func() int {
457457
// fix the progress for optional steps
458458
if mach.Is1(ss.StoryMealReady) {
459-
return a.mem.CountActive(a.allSteps())
459+
return len(a.mem.ActiveStates(a.allSteps()))
460460
}
461461

462462
return len(a.allSteps())

examples/cook/handlers.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func (a *Agent) LoopState(e *am.Event) {
149149
func (a *Agent) AnyState(e *am.Event) {
150150
mach := a.Mach()
151151
tx := e.Transition()
152-
mtime := mach.TimeSum(nil)
152+
mtime := mach.Time(nil).Sum(nil)
153153

154154
// refresh stories on state changes but avoid recursion and DUPs
155155
// TODO bind each story directly via wait methods
@@ -272,8 +272,8 @@ func (a *Agent) StoryChangedState(e *am.Event) {
272272
s.Cook.TimeDeactivated = mach.Time(nil)
273273
s.Memory.TimeDeactivated = a.mem.Time(nil)
274274
s.DeactivatedAt = time.Now()
275-
s.LastActiveTicks = s.Cook.TimeDeactivated.Sum() -
276-
s.Cook.TimeActivated.Sum()
275+
s.LastActiveTicks = s.Cook.TimeDeactivated.Sum(nil) -
276+
s.Cook.TimeActivated.Sum(nil)
277277
}
278278

279279
// activate
@@ -499,7 +499,7 @@ func (a *Agent) PromptState(e *am.Event) {
499499
ctx := mach.NewStateCtx(ss.Prompt)
500500

501501
// TODO extract to a state
502-
if int(mach.TimeSum(S{ss.RequestingLLM})) > a.Config.ReqLimit {
502+
if int(mach.Time(S{ss.RequestingLLM}).Sum(nil)) > a.Config.ReqLimit {
503503
_ = a.OutputPhrase("ReqLimitReached", a.Config.ReqLimit)
504504
a.reqLimitOk.Store(false)
505505
a.UserInput = ""
@@ -811,7 +811,7 @@ func (a *Agent) IngredientsReadyEnd(e *am.Event) {
811811
func (a *Agent) StoryWakingUpState(e *am.Event) {
812812
mach := a.Mach()
813813
ctx := mach.NewStateCtx(ss.StoryWakingUp)
814-
a.preWakeupSum = mach.Time(schema.CookGroups.BootGen).Sum()
814+
a.preWakeupSum = mach.Time(schema.CookGroups.BootGen).Sum(nil)
815815

816816
// loop guards
817817
a.loop = amhelp.NewStateLoop(mach, ss.Loop, nil)
@@ -839,8 +839,8 @@ func (a *Agent) StoryWakingUpState(e *am.Event) {
839839

840840
func (a *Agent) StoryWakingUpEnd(e *am.Event) {
841841
// announce only if waking up took some time (any related Gen* was triggered)
842-
postWakeupSum := a.Mach().Time(schema.CookGroups.BootGen).Sum
843-
if postWakeupSum() > a.preWakeupSum {
842+
postWakeupSum := a.Mach().Time(schema.CookGroups.BootGen).Sum(nil)
843+
if postWakeupSum > a.preWakeupSum {
844844
_ = a.OutputPhrase("WokenUp")
845845
}
846846
}

examples/cook/schema/sa_cook.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,7 @@ var StoryJoke = &Story{
756756
CanActivate: func(s *Story) bool {
757757
mem := s.Memory.Mach
758758
stepStates := mem.StateNamesMatch(MatchSteps)
759-
stepsNow := mem.TimeSum(stepStates) + s.Epoch
759+
stepsNow := mem.Time(stepStates).Sum(nil) + s.Epoch
760760
freq := 1.5
761761
// freq := 2.0
762762

go.mod

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ require (
2626
github.com/navidys/tvxwidgets v0.11.0
2727
github.com/ncruces/go-sqlite3 v0.29.1
2828
github.com/orsinium-labs/enum v1.4.0
29-
github.com/pancsta/asyncmachine-go v0.15.2
29+
github.com/pancsta/asyncmachine-go v0.16.0
3030
github.com/pancsta/cview v1.5.19
3131
github.com/rivo/tview v0.0.0-20250322200051-73a5bd7d6839
3232
github.com/sashabaranov/go-openai v1.38.0
@@ -105,11 +105,11 @@ require (
105105
go.opentelemetry.io/otel/sdk/log v0.14.0 // indirect
106106
go.opentelemetry.io/otel/trace v1.38.0 // indirect
107107
go.opentelemetry.io/proto/otlp v1.7.1 // indirect
108-
golang.org/x/crypto v0.42.0 // indirect
109-
golang.org/x/net v0.43.0 // indirect
110-
golang.org/x/sys v0.36.0 // indirect
111-
golang.org/x/term v0.35.0 // indirect
112-
golang.org/x/text v0.29.0 // indirect
108+
golang.org/x/crypto v0.43.0 // indirect
109+
golang.org/x/net v0.45.0 // indirect
110+
golang.org/x/sys v0.37.0 // indirect
111+
golang.org/x/term v0.36.0 // indirect
112+
golang.org/x/text v0.30.0 // indirect
113113
google.golang.org/appengine v1.6.8 // indirect
114114
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect
115115
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect

go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ github.com/onsi/gomega v1.37.0 h1:CdEG8g0S133B4OswTDC/5XPSzE1OeP29QOioj2PID2Y=
165165
github.com/onsi/gomega v1.37.0/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0=
166166
github.com/orsinium-labs/enum v1.4.0 h1:3NInlfV76kuAg0kq2FFUondmg3WO7gMEgrPPrlzLDUM=
167167
github.com/orsinium-labs/enum v1.4.0/go.mod h1:Qj5IK2pnElZtkZbGDxZMjpt7SUsn4tqE5vRelmWaBbc=
168-
github.com/pancsta/asyncmachine-go v0.15.2 h1:kZ2eyXNTX2ycwoDRr3HTJKLtByasjKYes4AYK2eiuvc=
169-
github.com/pancsta/asyncmachine-go v0.15.2/go.mod h1:cAhCEw38DnM8+q7G14AjAfoaQuoOYLmD3LEmH9b//x8=
168+
github.com/pancsta/asyncmachine-go v0.16.0 h1:gRz1CE5nLLGwYOWwv12WwzCwqsMsAwPifo6CzuhD+vU=
169+
github.com/pancsta/asyncmachine-go v0.16.0/go.mod h1:1djzq70jnS5KO0skOW9te1VjqpSugwbkL3DKTfrX/Ss=
170170
github.com/pancsta/cview v1.5.19 h1:Cu/Y+WT2EIylMFS7jQQH80yJ/Y2kMbED99TLK37qa/c=
171171
github.com/pancsta/cview v1.5.19/go.mod h1:6spT11UMZm+z62cQehJFy9Jn5URqztLccjl0LpXR+Vk=
172172
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -234,8 +234,8 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZF
234234
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
235235
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54=
236236
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk=
237-
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.11.0 h1:k6KdfZk72tVW/QVZf60xlDziDvYAePj5QHwoQvrB2m8=
238-
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.11.0/go.mod h1:5Y3ZJLqzi/x/kYtrSrPSx7TFI/SGsL7q2kME027tH6I=
237+
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 h1:B/g+qde6Mkzxbry5ZZag0l7QrQBCtVm7lVjaLgmpje8=
238+
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0/go.mod h1:mOJK8eMmgW6ocDJn6Bn11CcZ05gi3P8GylBXEkZtbgA=
239239
go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM=
240240
go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno=
241241
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
@@ -262,8 +262,8 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDf
262262
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
263263
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
264264
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
265-
golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
266-
golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
265+
golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04=
266+
golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0=
267267
golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476 h1:bsqhLWFR6G6xiQcb+JoGqdKdRU6WzPWmK8E0jxTjzo4=
268268
golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
269269
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
@@ -283,8 +283,8 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
283283
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
284284
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
285285
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
286-
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
287-
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
286+
golang.org/x/net v0.45.0 h1:RLBg5JKixCy82FtLJpeNlVM0nrSqpCRYzVU1n8kj0tM=
287+
golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
288288
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
289289
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
290290
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -309,8 +309,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
309309
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
310310
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
311311
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
312-
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
313-
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
312+
golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
313+
golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
314314
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
315315
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
316316
golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -323,8 +323,8 @@ golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
323323
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
324324
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
325325
golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
326-
golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
327-
golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
326+
golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q=
327+
golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss=
328328
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
329329
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
330330
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -336,16 +336,16 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
336336
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
337337
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
338338
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
339-
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
340-
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
339+
golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
340+
golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
341341
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
342342
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
343343
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
344344
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
345345
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
346346
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
347-
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
348-
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
347+
golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE=
348+
golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w=
349349
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
350350
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
351351
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=

secai.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ func (p *Prompt[P, R]) Run(e *am.Event, params P, model string) (*R, error) {
226226
HistoryLen: int64(len(msgs) - 1),
227227
Request: contentStr,
228228
CreatedAt: time.Now(),
229-
MachTimeSum: int64(mach.TimeSum(nil)),
229+
MachTimeSum: int64(mach.Time(nil).Sum(nil)),
230230
MachTime: fmt.Sprintf("%v", mach.Time(nil)),
231231
})
232232
if err != nil {

tools/searxng/searxng.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ import (
1717
"time"
1818

1919
am "github.com/pancsta/asyncmachine-go/pkg/machine"
20+
"golang.org/x/sync/errgroup"
21+
2022
"github.com/pancsta/secai"
2123
baseschema "github.com/pancsta/secai/schema"
2224
"github.com/pancsta/secai/tools/searxng/schema"
23-
"golang.org/x/sync/errgroup"
2425
)
2526

2627
var ss = schema.States

0 commit comments

Comments
 (0)