Go backend: - LLM client with DeepSeek/Kimi/Ollama/OpenAI support (OpenAI-compat) - Agent loader: AGENT.md frontmatter, SOUL.md, memory read/write - Skill system following agentskills.io standard - Room orchestration: master assign→execute→review loop with streaming - Hub: GitHub repo clone and team package install - Echo HTTP server with WebSocket and full REST API React frontend: - Discord-style 3-panel layout with Tailwind v4 - Zustand store with WebSocket streaming message handling - Chat view: streaming messages, role styles, right panel, drawer buttons - Agent MD editor with Monaco Editor (AGENT.md + SOUL.md) - Market page for GitHub team install/publish Docs: - plan.md with full progress tracking and next steps Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
589 B
Go
31 lines
589 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/sdaduanbilei/agent-team/internal/api"
|
|
)
|
|
|
|
func main() {
|
|
agentsDir := env("AGENTS_DIR", "agents")
|
|
skillsDir := env("SKILLS_DIR", "skills")
|
|
roomsDir := env("ROOMS_DIR", "rooms")
|
|
addr := env("ADDR", ":8080")
|
|
|
|
for _, dir := range []string{agentsDir, skillsDir, roomsDir} {
|
|
os.MkdirAll(dir, 0755)
|
|
}
|
|
|
|
s := api.New(agentsDir, skillsDir, roomsDir)
|
|
log.Printf("agent-team server starting on %s", addr)
|
|
log.Fatal(s.Start(addr))
|
|
}
|
|
|
|
func env(key, fallback string) string {
|
|
if v := os.Getenv(key); v != "" {
|
|
return v
|
|
}
|
|
return fallback
|
|
}
|