repository

package
v0.0.11 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateExecutionRequest

type CreateExecutionRequest struct {
	SessionID  string  `json:"session_id"`
	Code       string  `json:"code"`
	Result     *string `json:"result,omitempty"`
	ConsoleLog *string `json:"console_log,omitempty"`
	Error      *string `json:"error,omitempty"`
	Source     string  `json:"source"`
}

CreateExecutionRequest contains data for creating a new script execution

type ExecutionFilter

type ExecutionFilter struct {
	Search    string     `json:"search,omitempty"`
	SessionID string     `json:"session_id,omitempty"`
	Source    string     `json:"source,omitempty"`
	FromDate  *time.Time `json:"from_date,omitempty"`
	ToDate    *time.Time `json:"to_date,omitempty"`
}

ExecutionFilter provides filtering options for script execution queries

type ExecutionQueryResult

type ExecutionQueryResult struct {
	Executions []ScriptExecution `json:"executions"`
	Total      int               `json:"total"`
	Limit      int               `json:"limit"`
	Offset     int               `json:"offset"`
}

ExecutionQueryResult contains paginated execution results

type ExecutionRepository

type ExecutionRepository interface {
	// CreateExecution stores a new script execution
	CreateExecution(ctx context.Context, req CreateExecutionRequest) (*ScriptExecution, error)

	// GetExecution retrieves a script execution by ID
	GetExecution(ctx context.Context, id int) (*ScriptExecution, error)

	// GetExecutionBySessionID retrieves a script execution by session ID
	GetExecutionBySessionID(ctx context.Context, sessionID string) (*ScriptExecution, error)

	// ListExecutions retrieves script executions with filtering and pagination
	ListExecutions(ctx context.Context, filter ExecutionFilter, pagination PaginationOptions) (*ExecutionQueryResult, error)

	// DeleteExecution removes a script execution by ID
	DeleteExecution(ctx context.Context, id int) error

	// DeleteExecutionsBySessionID removes all executions for a session
	DeleteExecutionsBySessionID(ctx context.Context, sessionID string) error

	// GetExecutionStats returns statistics about script executions
	GetExecutionStats(ctx context.Context) (*ExecutionStats, error)
}

ExecutionRepository defines the interface for script execution storage

type ExecutionStats

type ExecutionStats struct {
	TotalExecutions      int            `json:"total_executions"`
	SuccessfulExecutions int            `json:"successful_executions"`
	FailedExecutions     int            `json:"failed_executions"`
	ExecutionsBySource   map[string]int `json:"executions_by_source"`
	AverageExecutionTime *float64       `json:"average_execution_time,omitempty"`
}

ExecutionStats contains statistics about script executions

type PaginationOptions

type PaginationOptions struct {
	Limit  int `json:"limit"`
	Offset int `json:"offset"`
}

PaginationOptions provides pagination parameters

type RepositoryManager

type RepositoryManager interface {
	Executions() ExecutionRepository
	Close() error
}

RepositoryManager manages all repositories

func NewSQLiteRepositoryManager

func NewSQLiteRepositoryManager(dbPath string) (RepositoryManager, error)

NewSQLiteRepositoryManager creates a new SQLite repository manager

type ScriptExecution

type ScriptExecution struct {
	ID         int       `json:"id" db:"id"`
	SessionID  string    `json:"session_id" db:"session_id"`
	Code       string    `json:"code" db:"code"`
	Result     *string   `json:"result" db:"result"`           // Nullable
	ConsoleLog *string   `json:"console_log" db:"console_log"` // Nullable
	Error      *string   `json:"error" db:"error"`             // Nullable
	Timestamp  time.Time `json:"timestamp" db:"timestamp"`
	Source     string    `json:"source" db:"source"` // 'api', 'mcp', 'file'
}

ScriptExecution represents a stored script execution record

Jump to

Keyboard shortcuts

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