api

package
v0.0.0-...-e238554 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 30, 2026 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Logger

func Logger(logger *logrus.Logger) gin.HandlerFunc

Logger creates a logging middleware

func Recovery

func Recovery(logger *logrus.Logger) gin.HandlerFunc

Recovery creates a panic recovery middleware

func SetupRouter

func SetupRouter(server *Server, logger *logrus.Logger) *gin.Engine

SetupRouter creates and configures the Gin router

Types

type Server

type Server struct {
	// contains filtered or unexported fields
}

Server holds the API dependencies

func NewServer

func NewServer(storage storage.Storage, exec executor.Executor, cfg *config.Config) *Server

NewServer creates a new API server

func (*Server) ExecuteAsync

func (s *Server) ExecuteAsync(c *gin.Context)

ExecuteAsync handles asynchronous execution @Summary Execute code asynchronously @Description Submit code for execution and return immediately with an execution ID. @Description @Description IMPORTANT: Use the client libraries instead of calling this directly. @Description The request must be multipart/form-data with a tar archive and metadata JSON. @Tags execution @Accept multipart/form-data @Produce json @Param tar formData file true "Uncompressed tar archive containing Python files" @Param metadata formData string true "Execution metadata as JSON: {\"entrypoint\":\"main.py\"}" @Success 202 {object} client.AsyncResponse "Execution submitted" @Failure 400 {object} gin.H "Invalid request format" @Failure 500 {object} gin.H "Failed to create execution" @Router /exec/async [post]

func (*Server) ExecuteEval

func (s *Server) ExecuteEval(c *gin.Context)

ExecuteEval handles JSON-only synchronous execution @Summary Execute code via JSON (simplified API) @Description Execute Python code using a simple JSON interface. @Description This endpoint is designed for AI agents and simple integrations. @Description @Description Two modes are supported: @Description - Single file: provide "code" field with Python code @Description - Multi-file: provide "files" array with name/content pairs @Tags execution @Accept json @Produce json @Param request body client.SimpleExecRequest true "Execution request" @Success 200 {object} client.ExecutionResult "Execution completed" @Failure 400 {object} gin.H "Invalid request" @Failure 413 {object} gin.H "Code size exceeds limit" @Failure 500 {object} gin.H "Execution failed" @Router /eval [post]

func (*Server) ExecuteSync

func (s *Server) ExecuteSync(c *gin.Context)

ExecuteSync handles synchronous execution @Summary Execute code synchronously @Description Execute Python code and wait for result. @Description @Description IMPORTANT: Use the client libraries instead of calling this directly. @Description The request must be multipart/form-data with a tar archive and metadata JSON. @Tags execution @Accept multipart/form-data @Produce json @Param tar formData file true "Uncompressed tar archive containing Python files" @Param metadata formData string true "Execution metadata as JSON: {\"entrypoint\":\"main.py\",\"config\":{\"timeout_seconds\":300}}" @Success 200 {object} client.ExecutionResult "Execution completed" @Failure 400 {object} gin.H "Invalid request format" @Failure 500 {object} gin.H "Execution failed" @Router /exec/sync [post]

func (*Server) GetExecution

func (s *Server) GetExecution(c *gin.Context)

GetExecution retrieves execution status @Summary Get execution status @Description Retrieve the status and result of an execution. @Description Status values: pending, running, completed, failed, killed @Tags execution @Produce json @Param id path string true "Execution ID (e.g., exe_550e8400-e29b-41d4-a716-446655440000)" @Success 200 {object} client.ExecutionResult "Execution status and result" @Failure 404 {object} gin.H "Execution not found" @Router /executions/{id} [get]

func (*Server) KillExecution

func (s *Server) KillExecution(c *gin.Context)

KillExecution terminates a running execution @Summary Kill execution @Description Terminate a running execution. @Description If the execution is not running, returns the current status. @Tags execution @Produce json @Param id path string true "Execution ID (e.g., exe_550e8400-e29b-41d4-a716-446655440000)" @Success 200 {object} client.KillResponse "Execution killed or current status" @Failure 404 {object} gin.H "Execution not found" @Failure 500 {object} gin.H "Failed to kill execution" @Router /executions/{id} [delete]

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL