jobruntime

package
v1.2.8 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusRunning        = "running"
	StatusPaused         = "paused"
	StatusDecisionNeeded = "decision_needed"
	StatusBlocked        = "blocked"
	StatusCompleted      = "completed"
	StatusCancelled      = "cancelled"
)
View Source
const (
	StopReasonNone                   = "none"
	StopReasonPausedByUser           = "paused_by_user"
	StopReasonDecisionNeeded         = "decision_needed"
	StopReasonBlocked                = "blocked"
	StopReasonCompleted              = "completed"
	StopReasonCancelledByUser        = "cancelled_by_user"
	StopReasonEnvFingerprintMismatch = "env_fingerprint_mismatch"
)
View Source
const (
	CheckpointTypePlan           = "plan"
	CheckpointTypeProgress       = "progress"
	CheckpointTypeDecisionNeeded = "decision-needed"
	CheckpointTypeBlocked        = "blocked"
	CheckpointTypeCompleted      = "completed"
)

Variables

View Source
var (
	ErrJobNotFound         = errors.New("job not found")
	ErrInvalidTransition   = errors.New("invalid transition")
	ErrApprovalRequired    = errors.New("approval required")
	ErrEnvironmentMismatch = errors.New("environment fingerprint mismatch")
	ErrInvalidCheckpoint   = errors.New("invalid checkpoint")
	ErrStateContention     = errors.New("state contention")
)

Functions

func AddCheckpoint

func AddCheckpoint(root string, jobID string, opts CheckpointOptions) (JobState, Checkpoint, error)

func EnvironmentFingerprint

func EnvironmentFingerprint(override string) string

func Inspect

func Inspect(root string, jobID string) (JobState, []Event, error)

Types

type Approval

type Approval struct {
	CreatedAt time.Time `json:"created_at"`
	Actor     string    `json:"actor"`
	Reason    string    `json:"reason"`
}

type ApprovalOptions

type ApprovalOptions struct {
	Actor  string
	Reason string
	Now    time.Time
}

type Checkpoint

type Checkpoint struct {
	CheckpointID   string    `json:"checkpoint_id"`
	CreatedAt      time.Time `json:"created_at"`
	Type           string    `json:"type"`
	Summary        string    `json:"summary"`
	RequiredAction string    `json:"required_action,omitempty"`
	ReasonCode     string    `json:"reason_code"`
	Actor          string    `json:"actor,omitempty"`
}

func GetCheckpoint

func GetCheckpoint(root string, jobID string, checkpointID string) (Checkpoint, error)

func ListCheckpoints

func ListCheckpoints(root string, jobID string) ([]Checkpoint, error)

type CheckpointOptions

type CheckpointOptions struct {
	Type           string
	Summary        string
	RequiredAction string
	Actor          string
	Now            time.Time
}

type Event

type Event struct {
	SchemaID      string         `json:"schema_id"`
	SchemaVersion string         `json:"schema_version"`
	CreatedAt     time.Time      `json:"created_at"`
	JobID         string         `json:"job_id"`
	Revision      int64          `json:"revision"`
	Type          string         `json:"type"`
	Actor         string         `json:"actor,omitempty"`
	ReasonCode    string         `json:"reason_code,omitempty"`
	Payload       map[string]any `json:"payload,omitempty"`
}

type JobState

type JobState struct {
	SchemaID               string       `json:"schema_id"`
	SchemaVersion          string       `json:"schema_version"`
	CreatedAt              time.Time    `json:"created_at"`
	UpdatedAt              time.Time    `json:"updated_at"`
	ProducerVersion        string       `json:"producer_version"`
	JobID                  string       `json:"job_id"`
	Status                 string       `json:"status"`
	StopReason             string       `json:"stop_reason"`
	StatusReasonCode       string       `json:"status_reason_code"`
	EnvironmentFingerprint string       `json:"environment_fingerprint"`
	Revision               int64        `json:"revision"`
	Checkpoints            []Checkpoint `json:"checkpoints"`
	Approvals              []Approval   `json:"approvals,omitempty"`
}

func Approve

func Approve(root string, jobID string, opts ApprovalOptions) (JobState, error)

func Cancel

func Cancel(root string, jobID string, opts TransitionOptions) (JobState, error)

func Pause

func Pause(root string, jobID string, opts TransitionOptions) (JobState, error)

func Resume

func Resume(root string, jobID string, opts ResumeOptions) (JobState, error)

func Status

func Status(root string, jobID string) (JobState, error)

func Submit

func Submit(root string, opts SubmitOptions) (JobState, error)

type ResumeOptions

type ResumeOptions struct {
	CurrentEnvironmentFingerprint string
	AllowEnvironmentMismatch      bool
	Reason                        string
	Actor                         string
	Now                           time.Time
}

type SubmitOptions

type SubmitOptions struct {
	JobID                  string
	ProducerVersion        string
	EnvironmentFingerprint string
	Actor                  string
	Now                    time.Time
}

type TransitionOptions

type TransitionOptions struct {
	Actor string
	Now   time.Time
}

Jump to

Keyboard shortcuts

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