ba919305c2
Features: - Unified Go binary running Task Service, Agent Manager, and Orchestrator - SQLite persistence for boards, columns, and tasks - Docker-based agent execution with ACP message streaming - Augment Agent integration with session resumption support - RESTful API for all operations (port 8080) - In-memory event bus for service communication Architecture: - cmd/kandev: Single entry point for all services - internal/task: Task, board, and column management - internal/agent: Docker container lifecycle and ACP streaming - internal/orchestrator: Agent coordination and monitoring - internal/events: In-memory pub/sub event bus Documentation: - README.md: Project overview and quick start - docs/ARCHITECTURE.md: System architecture (current + planned) - docs/GETTING_STARTED.md: Development setup guide - docs/IMPLEMENTATION_PLAN.md: Original microservices plan - backend/NEXT_STEPS.md: Development roadmap
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/kandev/kandev/internal/common/logger"
|
|
"github.com/kandev/kandev/internal/task/service"
|
|
)
|
|
|
|
// SetupRoutes configures the task API routes
|
|
func SetupRoutes(router *gin.RouterGroup, svc *service.Service, log *logger.Logger) {
|
|
handler := NewHandler(svc, log)
|
|
|
|
// Board routes
|
|
boards := router.Group("/boards")
|
|
{
|
|
boards.POST("", handler.CreateBoard)
|
|
boards.GET("", handler.ListBoards)
|
|
boards.GET("/:boardId", handler.GetBoard)
|
|
boards.PUT("/:boardId", handler.UpdateBoard)
|
|
boards.DELETE("/:boardId", handler.DeleteBoard)
|
|
|
|
// Board sub-resources
|
|
boards.GET("/:boardId/tasks", handler.ListTasks)
|
|
boards.POST("/:boardId/columns", handler.CreateColumn)
|
|
boards.GET("/:boardId/columns", handler.ListColumns)
|
|
}
|
|
|
|
// Task routes
|
|
tasks := router.Group("/tasks")
|
|
{
|
|
tasks.POST("", handler.CreateTask)
|
|
tasks.GET("/:taskId", handler.GetTask)
|
|
tasks.PUT("/:taskId", handler.UpdateTask)
|
|
tasks.DELETE("/:taskId", handler.DeleteTask)
|
|
tasks.PUT("/:taskId/state", handler.UpdateTaskState)
|
|
tasks.PUT("/:taskId/move", handler.MoveTask)
|
|
}
|
|
|
|
// Column routes
|
|
columns := router.Group("/columns")
|
|
{
|
|
columns.GET("/:columnId", handler.GetColumn)
|
|
}
|
|
}
|
|
|