Internal
internal/app/harden
Package harden opens and completes spec hardening rounds.
import "github.com/nilstate/scafld/v2/internal/app/harden"
Package harden opens and completes spec hardening rounds.
Variables
Source: internal/app/harden/harden.go:21
var (
// ErrMissingSpecStore is returned when hardening has no spec store.
ErrMissingSpecStore = errors.New("missing spec store")
// ErrNoHardenRound is returned when marking pass without an open round.
ErrNoHardenRound = errors.New("no harden round exists")
// ErrSpecNotDraft is returned when hardening a non-draft spec.
ErrSpecNotDraft = errors.New("harden only operates on drafts")
// ErrInvalidHardenEvidence is returned when a hardening round has unverified citations.
ErrInvalidHardenEvidence = errors.New("invalid harden evidence")
)Functions
func Run(ctx context.Context, store SpecStore, clock Clock, input Input) (Output, error)
Source: internal/app/harden/harden.go:64
Run opens a hardening round or marks the latest round passed.
Types
type Clock
Source: internal/app/harden/harden.go:39
Clock supplies hardening timestamps.
type Clock interface {
Now() time.Time
}Methods
Now func() time.Time
type Input
Source: internal/app/harden/harden.go:44
Input describes a hardening operation.
type Input struct {
TaskID string
MarkPassed bool
Root string
Prompt string
}Fields
TaskID stringMarkPassed boolRoot stringPrompt string
type Output
Source: internal/app/harden/harden.go:52
Output describes the opened or completed hardening round.
type Output struct {
TaskID string `json:"task_id"`
Path string `json:"path"`
HardenStatus spec.HardenStatus `json:"harden_status"`
RoundID string `json:"round_id"`
MarkedPassed bool `json:"marked_passed"`
NextCommand string `json:"next_command"`
Prompt string `json:"prompt"`
Warnings []string `json:"warnings"`
}Fields
TaskID string`json:"task_id"`Path string`json:"path"`HardenStatus spec.HardenStatus`json:"harden_status"`RoundID string`json:"round_id"`MarkedPassed bool`json:"marked_passed"`NextCommand string`json:"next_command"`Prompt string`json:"prompt"`Warnings []string`json:"warnings"`
type SpecStore
Source: internal/app/harden/harden.go:33
SpecStore is the spec persistence port used by hardening.
type SpecStore interface {
Load(context.Context, string) (spec.Model, string, error)
Save(context.Context, string, spec.Model) error
}Methods
Load func(context.Context, string) (spec.Model, string, error)Save func(context.Context, string, spec.Model) error
