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
Types ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server holds the API dependencies
func (*Server) ExecuteAsync ¶
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 ¶
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 ¶
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 ¶
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 ¶
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]