cmd

package
v0.137.0 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2026 License: BSD-2-Clause Imports: 17 Imported by: 0

Documentation

Overview

Package cmd implements CLI commands for the dark-factory tool.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindPromptFile added in v0.22.0

func FindPromptFile(ctx context.Context, dir, id string) (string, error)

FindPromptFile finds a prompt file by id in dir, supporting: - absolute or relative path with directory component (checked directly) - exact filename with .md extension - filename without .md extension - numeric prefix match (e.g. "122" matches "122-some-name.md")

func FindPromptFileInDirs added in v0.134.0

func FindPromptFileInDirs(ctx context.Context, id string, dirs ...string) (string, error)

FindPromptFileInDirs searches dirs in order and returns the first match.

func FindSpecFile added in v0.20.0

func FindSpecFile(ctx context.Context, specsDir, id string) (string, error)

FindSpecFile finds a spec by absolute/relative path, exact filename, or numeric prefix match within specsDir.

func FindSpecFileInDirs added in v0.20.5

func FindSpecFileInDirs(ctx context.Context, id string, dirs ...string) (string, error)

FindSpecFileInDirs searches dirs in order and returns the first match. Falls back to the existing FindSpecFile logic for each dir.

Types

type ApproveCommand added in v0.17.15

type ApproveCommand interface {
	Run(ctx context.Context, args []string) error
}

ApproveCommand executes the approve subcommand.

func NewApproveCommand added in v0.17.15

func NewApproveCommand(
	inboxDir string,
	queueDir string,
	promptManager PromptManager,
) ApproveCommand

NewApproveCommand creates a new ApproveCommand.

type CancelCommand added in v0.62.0

type CancelCommand interface {
	Run(ctx context.Context, args []string) error
}

CancelCommand executes the cancel subcommand.

func NewCancelCommand added in v0.62.0

func NewCancelCommand(
	queueDir string,
	promptManager PromptManager,
) CancelCommand

NewCancelCommand creates a new CancelCommand.

type CombinedListCommand added in v0.17.25

type CombinedListCommand interface {
	Run(ctx context.Context, args []string) error
}

CombinedListCommand shows combined prompt and spec list.

func NewCombinedListCommand added in v0.17.25

func NewCombinedListCommand(
	inboxDir string,
	queueDir string,
	completedDir string,
	rejectedDir string,
	lister spec.Lister,
	counter prompt.Counter,
	promptManager PromptManager,
) CombinedListCommand

NewCombinedListCommand creates a new CombinedListCommand.

type CombinedStatusCommand added in v0.17.25

type CombinedStatusCommand interface {
	Run(ctx context.Context, args []string) error
}

CombinedStatusCommand shows combined prompt and spec status.

func NewCombinedStatusCommand added in v0.17.25

func NewCombinedStatusCommand(
	checker status.Checker,
	formatter status.Formatter,
	lister spec.Lister,
	counter prompt.Counter,
) CombinedStatusCommand

NewCombinedStatusCommand creates a new CombinedStatusCommand.

type KillCommand added in v0.84.0

type KillCommand interface {
	Run(ctx context.Context, args []string) error
}

KillCommand executes the kill subcommand.

func NewKillCommand added in v0.84.0

func NewKillCommand(
	lockFilePath string,
	signalFunc func(pid int, sig syscall.Signal) error,
	sleepFunc func(d time.Duration),
) KillCommand

NewKillCommand creates a new KillCommand. signalFunc and sleepFunc may be nil; defaults are used in that case.

type ListCommand added in v0.17.15

type ListCommand interface {
	Run(ctx context.Context, args []string) error
}

ListCommand executes the list subcommand.

func NewListCommand added in v0.17.15

func NewListCommand(
	inboxDir string,
	queueDir string,
	completedDir string,
	rejectedDir string,
	promptManager PromptManager,
) ListCommand

NewListCommand creates a new ListCommand.

type PromptCompleteCommand added in v0.69.0

type PromptCompleteCommand interface {
	Run(ctx context.Context, args []string) error
}

PromptCompleteCommand executes the prompt complete subcommand.

func NewPromptCompleteCommand added in v0.69.0

func NewPromptCompleteCommand(
	queueDir string,
	completedDir string,
	promptManager PromptManager,
	releaser git.Releaser,
	pr bool,
	brancher git.Brancher,
	prCreator git.PRCreator,
) PromptCompleteCommand

NewPromptCompleteCommand creates a new PromptCompleteCommand.

type PromptEntry added in v0.17.15

type PromptEntry struct {
	Status string `json:"status"`
	File   string `json:"file"`
}

PromptEntry represents a single prompt entry in the list output.

type PromptManager added in v0.119.2

type PromptManager interface {
	Load(ctx context.Context, path string) (*prompt.PromptFile, error)
	NormalizeFilenames(ctx context.Context, dir string) ([]prompt.Rename, error)
	MoveToCompleted(ctx context.Context, path string) error
}

PromptManager is the subset of prompt.Manager that the cmd package uses.

type PromptShowCommand added in v0.25.0

type PromptShowCommand interface {
	Run(ctx context.Context, args []string) error
}

PromptShowCommand executes the prompt show subcommand.

func NewPromptShowCommand added in v0.25.0

func NewPromptShowCommand(
	inboxDir, inProgressDir, completedDir, logDir string,
	promptManager PromptManager,
) PromptShowCommand

NewPromptShowCommand creates a new PromptShowCommand.

type PromptShowOutput added in v0.25.0

type PromptShowOutput struct {
	File      string   `json:"file"`
	Status    string   `json:"status"`
	Specs     []string `json:"specs,omitempty"`
	Summary   string   `json:"summary,omitempty"`
	Created   string   `json:"created,omitempty"`
	Queued    string   `json:"queued,omitempty"`
	Started   string   `json:"started,omitempty"`
	Completed string   `json:"completed,omitempty"`
	LogPath   string   `json:"log_path,omitempty"`
}

PromptShowOutput holds all fields for JSON output.

type RejectCommand added in v0.134.0

type RejectCommand interface {
	Run(ctx context.Context, args []string) error
}

RejectCommand executes the prompt reject subcommand.

func NewRejectCommand added in v0.134.0

func NewRejectCommand(
	inboxDir string,
	inProgressDir string,
	rejectedDir string,
	promptManager PromptManager,
) RejectCommand

NewRejectCommand creates a new RejectCommand.

type RequeueCommand added in v0.17.15

type RequeueCommand interface {
	Run(ctx context.Context, args []string) error
}

RequeueCommand executes the requeue subcommand.

func NewRequeueCommand added in v0.17.15

func NewRequeueCommand(
	queueDir string,
	promptManager PromptManager,
) RequeueCommand

NewRequeueCommand creates a new RequeueCommand.

type ScenarioEntry added in v0.131.0

type ScenarioEntry struct {
	Number int    `json:"number"`
	Status string `json:"status"`
	Title  string `json:"title"`
	File   string `json:"file"`
}

ScenarioEntry represents a single scenario in the list output.

type ScenarioListCommand added in v0.131.0

type ScenarioListCommand interface {
	Run(ctx context.Context, args []string) error
}

ScenarioListCommand executes the scenario list subcommand.

func NewScenarioListCommand added in v0.131.0

func NewScenarioListCommand(lister scenario.Lister) ScenarioListCommand

NewScenarioListCommand creates a new ScenarioListCommand.

type ScenarioShowCommand added in v0.131.0

type ScenarioShowCommand interface {
	Run(ctx context.Context, args []string) error
}

ScenarioShowCommand executes the scenario show subcommand.

func NewScenarioShowCommand added in v0.131.0

func NewScenarioShowCommand(lister scenario.Lister) ScenarioShowCommand

NewScenarioShowCommand creates a new ScenarioShowCommand.

type ScenarioStatusCommand added in v0.131.0

type ScenarioStatusCommand interface {
	Run(ctx context.Context, args []string) error
}

ScenarioStatusCommand executes the scenario status subcommand.

func NewScenarioStatusCommand added in v0.131.0

func NewScenarioStatusCommand(lister scenario.Lister) ScenarioStatusCommand

NewScenarioStatusCommand creates a new ScenarioStatusCommand.

type SpecApproveCommand added in v0.17.23

type SpecApproveCommand interface {
	Run(ctx context.Context, args []string) error
}

SpecApproveCommand executes the spec approve subcommand.

func NewSpecApproveCommand added in v0.17.23

func NewSpecApproveCommand(
	inboxDir string,
	inProgressDir string,
	completedDir string,
	currentDateTimeGetter libtime.CurrentDateTimeGetter,
) SpecApproveCommand

NewSpecApproveCommand creates a new SpecApproveCommand.

type SpecCompleteCommand added in v0.23.2

type SpecCompleteCommand interface {
	Run(ctx context.Context, args []string) error
}

SpecCompleteCommand executes the spec complete subcommand.

func NewSpecCompleteCommand added in v0.23.2

func NewSpecCompleteCommand(
	inboxDir string,
	inProgressDir string,
	completedDir string,
	currentDateTimeGetter libtime.CurrentDateTimeGetter,
) SpecCompleteCommand

NewSpecCompleteCommand creates a new SpecCompleteCommand.

type SpecEntry added in v0.17.23

type SpecEntry struct {
	Status           string `json:"status"`
	File             string `json:"file"`
	PromptsCompleted int    `json:"prompts_completed"`
	PromptsTotal     int    `json:"prompts_total"`
}

SpecEntry represents a single spec entry in the list output.

type SpecListCommand added in v0.17.23

type SpecListCommand interface {
	Run(ctx context.Context, args []string) error
}

SpecListCommand executes the spec list subcommand.

func NewSpecListCommand added in v0.17.23

func NewSpecListCommand(lister specpkg.Lister, counter prompt.Counter) SpecListCommand

NewSpecListCommand creates a new SpecListCommand.

type SpecRejectCommand added in v0.134.0

type SpecRejectCommand interface {
	Run(ctx context.Context, args []string) error
}

SpecRejectCommand executes the spec reject subcommand.

func NewSpecRejectCommand added in v0.134.0

func NewSpecRejectCommand(
	specsInboxDir string,
	specsInProgressDir string,
	specsRejectedDir string,
	promptsInboxDir string,
	promptsInProgressDir string,
	promptsCompletedDir string,
	promptsRejectedDir string,
	promptManager PromptManager,
	currentDateTimeGetter libtime.CurrentDateTimeGetter,
) SpecRejectCommand

NewSpecRejectCommand creates a new SpecRejectCommand.

type SpecShowCommand added in v0.25.0

type SpecShowCommand interface {
	Run(ctx context.Context, args []string) error
}

SpecShowCommand executes the spec show subcommand.

func NewSpecShowCommand added in v0.25.0

func NewSpecShowCommand(
	inboxDir, inProgressDir, completedDir string,
	counter prompt.Counter,
	currentDateTimeGetter libtime.CurrentDateTimeGetter,
) SpecShowCommand

NewSpecShowCommand creates a new SpecShowCommand.

type SpecShowOutput added in v0.25.0

type SpecShowOutput struct {
	File             string `json:"file"`
	Status           string `json:"status"`
	Approved         string `json:"approved,omitempty"`
	Prompted         string `json:"prompted,omitempty"`
	Verifying        string `json:"verifying,omitempty"`
	Completed        string `json:"completed,omitempty"`
	PromptsCompleted int    `json:"prompts_completed"`
	PromptsTotal     int    `json:"prompts_total"`
}

SpecShowOutput holds all fields for JSON output.

type SpecStatusCommand added in v0.17.23

type SpecStatusCommand interface {
	Run(ctx context.Context, args []string) error
}

SpecStatusCommand executes the spec status subcommand.

func NewSpecStatusCommand added in v0.17.23

func NewSpecStatusCommand(lister spec.Lister, counter prompt.Counter) SpecStatusCommand

NewSpecStatusCommand creates a new SpecStatusCommand.

type SpecUnapproveCommand added in v0.78.0

type SpecUnapproveCommand interface {
	Run(ctx context.Context, args []string) error
}

SpecUnapproveCommand executes the spec unapprove subcommand.

func NewSpecUnapproveCommand added in v0.78.0

func NewSpecUnapproveCommand(
	inboxDir string,
	inProgressDir string,
	promptsInboxDir string,
	promptsInProgressDir string,
	promptManager PromptManager,
	currentDateTimeGetter libtime.CurrentDateTimeGetter,
) SpecUnapproveCommand

NewSpecUnapproveCommand creates a new SpecUnapproveCommand.

type StatusCommand

type StatusCommand interface {
	Run(ctx context.Context, args []string) error
}

StatusCommand executes the status subcommand.

func NewStatusCommand

func NewStatusCommand(checker status.Checker, formatter status.Formatter) StatusCommand

NewStatusCommand creates a new StatusCommand.

type UnapproveCommand added in v0.77.0

type UnapproveCommand interface {
	Run(ctx context.Context, args []string) error
}

UnapproveCommand executes the unapprove subcommand.

func NewUnapproveCommand added in v0.77.0

func NewUnapproveCommand(
	inboxDir string,
	queueDir string,
	promptManager PromptManager,
) UnapproveCommand

NewUnapproveCommand creates a new UnapproveCommand.

Jump to

Keyboard shortcuts

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