Help us shape the future of Go! Take the 2026 Go Developer Survey

taskstate

package
v0.5.3 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SchemaVersion     = 1
	FinalReviewPass   = "pass"
	FinalReviewFailed = "failed"
)
View Source
const (
	StepPending    = "pending"
	StepInProgress = "in_progress"
	StepCompleted  = "completed"
)

Variables

View Source
var ErrTaskNotFound = errors.New("task not found")

Functions

This section is empty.

Types

type Condition

type Condition struct {
	ID        string    `json:"id"`
	Text      string    `json:"text"`
	CreatedAt time.Time `json:"created_at"`
}

type Event

type Event struct {
	Type      string    `json:"type"`
	Summary   string    `json:"summary"`
	CreatedAt time.Time `json:"created_at"`
}

type FinalReview

type FinalReview struct {
	Status        string    `json:"status"`
	Summary       string    `json:"summary"`
	VerifiedFacts []string  `json:"verified_facts,omitempty"`
	OpenRisks     []string  `json:"open_risks,omitempty"`
	MissingChecks []string  `json:"missing_checks,omitempty"`
	ReviewedAt    time.Time `json:"reviewed_at"`
}

type FinalReviewInput

type FinalReviewInput struct {
	Status        string   `json:"status"`
	Summary       string   `json:"summary"`
	VerifiedFacts []string `json:"verified_facts,omitempty"`
	OpenRisks     []string `json:"open_risks,omitempty"`
	MissingChecks []string `json:"missing_checks,omitempty"`
}

type MatchRule

type MatchRule struct {
	Keywords []string `json:"keywords,omitempty"`
	Devices  []string `json:"devices,omitempty"`
	Type     string   `json:"type,omitempty"`
}

type Phase

type Phase string
const (
	PhaseCheck    Phase = "check"
	PhaseExecute  Phase = "execute"
	PhaseVerify   Phase = "verify"
	PhaseCloseout Phase = "closeout"
)

type Status

type Status string
const (
	StatusActive    Status = "active"
	StatusBlocked   Status = "blocked"
	StatusCompleted Status = "completed"
)

type Store

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

func New

func New(root string) (*Store, error)

func (*Store) BatchCheckpoint

func (s *Store) BatchCheckpoint(id string, completedStepIDs []string, currentStepID, summary string) (Task, error)

func (*Store) Block

func (s *Store) Block(id, summary string) (Task, error)

func (*Store) Checkpoint

func (s *Store) Checkpoint(id, stepID, status, summary string) (Task, error)

func (*Store) Complete

func (s *Store) Complete(id string) (Task, error)

func (*Store) Create

func (s *Store) Create(title, goal string, conditionTexts []string, steps []TaskStepInput, sourceTemplates []TemplateReference) (Task, error)

func (*Store) Delete

func (s *Store) Delete(id string) (Task, error)

func (*Store) FinalReview

func (s *Store) FinalReview(id string, input FinalReviewInput) (Task, error)

func (*Store) Get

func (s *Store) Get(id string) (Task, error)

func (*Store) List

func (s *Store) List(status Status, limit int) ([]Task, error)

func (*Store) Resume

func (s *Store) Resume(id, summary string) (Task, error)

func (*Store) Root

func (s *Store) Root() string

type Task

type Task struct {
	SchemaVersion   int                 `json:"schema_version"`
	ID              string              `json:"id"`
	Title           string              `json:"title"`
	Goal            string              `json:"goal"`
	Status          Status              `json:"status"`
	Phase           Phase               `json:"phase"`
	Conditions      []Condition         `json:"conditions"`
	Template        *TemplateSelection  `json:"template,omitempty"` // 仅用于读取旧任务状态。
	SourceTemplates []TemplateReference `json:"source_templates,omitempty"`
	Steps           []TaskStep          `json:"steps,omitempty"`
	Events          []Event             `json:"events"`
	Blocker         string              `json:"blocker,omitempty"`
	Summary         string              `json:"summary,omitempty"`
	FinalReview     *FinalReview        `json:"final_review,omitempty"`
	CreatedAt       time.Time           `json:"created_at"`
	UpdatedAt       time.Time           `json:"updated_at"`
	CompletedAt     *time.Time          `json:"completed_at,omitempty"`
}

type TaskStep

type TaskStep struct {
	ID        string    `json:"id"`
	Title     string    `json:"title"`
	Phase     Phase     `json:"phase"`
	Status    string    `json:"status"`
	UpdatedAt time.Time `json:"updated_at"`
}

type TaskStepInput

type TaskStepInput struct {
	ID    string `json:"id"`
	Title string `json:"title"`
	Phase Phase  `json:"phase,omitempty"`
}

type Template

type Template struct {
	ID                   string         `json:"id"`
	Version              string         `json:"version"`
	Title                string         `json:"title"`
	Description          string         `json:"description,omitempty"`
	Status               TemplateStatus `json:"status"`
	Match                MatchRule      `json:"match,omitempty"`
	CompletionConditions []string       `json:"completion_conditions"`
	Steps                []TemplateStep `json:"steps"`
	AllowLongTemplate    bool           `json:"allow_long_template,omitempty"`
	LongTemplateReason   string         `json:"long_template_reason,omitempty"`
	Hash                 string         `json:"hash,omitempty"`
	PublishedAt          *time.Time     `json:"published_at,omitempty"`
	RetiredAt            *time.Time     `json:"retired_at,omitempty"`
}

type TemplateCandidate

type TemplateCandidate struct {
	ID      string `json:"id"`
	Version string `json:"version"`
	Score   int    `json:"score"`
	Reason  string `json:"reason"`
}

type TemplateReference

type TemplateReference struct {
	ID      string `json:"id"`
	Version string `json:"version"`
	Hash    string `json:"hash,omitempty"`
}

type TemplateSelection

type TemplateSelection struct {
	ID             string              `json:"id"`
	Version        string              `json:"version"`
	Hash           string              `json:"hash"`
	SelectedReason string              `json:"selected_reason"`
	Candidates     []TemplateCandidate `json:"candidates,omitempty"`
}

type TemplateStatus

type TemplateStatus string
const (
	TemplateDraft   TemplateStatus = "draft"
	TemplateActive  TemplateStatus = "active"
	TemplateRetired TemplateStatus = "retired"
)

type TemplateStep

type TemplateStep struct {
	ID    string `json:"id"`
	Title string `json:"title"`
	Phase Phase  `json:"phase"`
}

Jump to

Keyboard shortcuts

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