Files
zeekayandGitHub 5b5cf9e9db feat: merge AgentField control plane + SDKs as Hanzo Agents (#1)
Transforms hanzoai/agents from a marketplace config repo into a full
agent orchestration platform by merging the AgentField infrastructure:

- Go control plane (K8s-like agent orchestration, service mesh, DAG workflows)
- Python SDK (FastAPI-based agent framework, LiteLLM, memory, DID/VC)
- TypeScript SDK (@hanzo/agents - Vercel AI SDK, MCP, workflows)
- Go SDK (idiomatic agent builder + client)
- React 19 embedded dashboard (XyFlow DAGs, Recharts, Radix UI)
- Docker/K8s/Helm deployment configs
- Examples: hello world, deep research, RAG, simulation, benchmarks
- Functional test suite across Python/Go/TypeScript

All references rebranded: AgentField → Hanzo Agents
- Module: github.com/hanzoai/agents/control-plane
- Python: hanzo_agents
- TypeScript: @hanzo/agents
- Go: github.com/hanzoai/agents/sdk/go
- Env vars: HANZO_AGENTS_*
- Config: hanzo-agents.yaml

Previous marketplace configs moved to config/ directory.
2026-02-09 18:53:09 -08:00

37 lines
675 B
Go

package handlers
import (
"math/rand"
"strings"
"time"
)
var retryableFragments = []string{
"database is locked",
"SQLITE_BUSY",
"database table is locked",
"deadlock detected",
}
func isRetryableDBError(err error) bool {
if err == nil {
return false
}
msg := strings.ToLower(err.Error())
for _, fragment := range retryableFragments {
if strings.Contains(msg, strings.ToLower(fragment)) {
return true
}
}
return false
}
func backoffDelay(attempt int) time.Duration {
if attempt <= 0 {
attempt = 1
}
base := time.Duration(50*attempt) * time.Millisecond
jitter := time.Duration(rand.Int63n(int64(25 * time.Millisecond)))
return base + jitter
}