core

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: May 30, 2026 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AccessModeDefault leaves runtime permissions at the agent's native defaults.
	AccessModeDefault = model.AccessModeDefault
	// AccessModeFull requests the most permissive execution mode Productize knows how to configure.
	AccessModeFull = model.AccessModeFull
)

Variables

View Source
var ErrNoWork = plan.ErrNoWork

ErrNoWork indicates that no unresolved issues or pending PRD tasks were found.

View Source
var ErrWorkflowForceRequired = errors.New("core: workflow force required")

Functions

func NormalizeAddDirs

func NormalizeAddDirs(dirs []string) []string

NormalizeAddDirs trims, de-duplicates, and normalizes repeated add-dir values.

func RegisterDispatcherAdapters

func RegisterDispatcherAdapters(adapters DispatcherAdapters)

RegisterDispatcherAdapters installs dispatcher-backed adapters for the legacy core API entry points.

func Run

func Run(ctx context.Context, cfg Config) error

Run executes productize end to end for the provided configuration.

Types

type ArchiveConfig

type ArchiveConfig = model.ArchiveConfig

type ArchiveResult

type ArchiveResult = model.ArchiveResult

func Archive

func Archive(ctx context.Context, cfg ArchiveConfig) (*ArchiveResult, error)

func ArchiveDirect

func ArchiveDirect(ctx context.Context, cfg ArchiveConfig) (*ArchiveResult, error)

ArchiveDirect preserves access to the pre-dispatch archive implementation for kernel handlers.

type Config

type Config struct {
	WorkspaceRoot              string
	Name                       string
	Round                      int
	Provider                   string
	PR                         string
	Nitpicks                   bool
	ReviewsDir                 string
	TasksDir                   string
	DryRun                     bool
	AutoCommit                 bool
	Concurrent                 int
	BatchSize                  int
	IDE                        IDE
	Model                      string
	AddDirs                    []string
	TailLines                  int
	ReasoningEffort            string
	AccessMode                 string
	AgentName                  string
	ExplicitRuntime            model.ExplicitRuntimeFlags
	TaskRuntimeRules           []model.TaskRuntimeRule
	Mode                       Mode
	OutputFormat               OutputFormat
	Verbose                    bool
	Persist                    bool
	EnableExecutableExtensions bool
	RunID                      string
	PromptText                 string
	PromptFile                 string
	ReadPromptStdin            bool
	ResolvedPromptText         string
	IncludeCompleted           bool
	IncludeResolved            bool
	Timeout                    time.Duration
	MaxRetries                 int
	RetryBackoffMultiplier     float64
	SoundEnabled               bool
	SoundOnCompleted           string
	SoundOnFailed              string
}

Config configures productize preparation and execution.

Transitional note: during Phase A of the kernel refactor this struct remains exported as the legacy translation shape used by CLI flag parsing and older call sites before they move to typed kernel commands directly.

func (Config) RuntimeConfig

func (cfg Config) RuntimeConfig() *model.RuntimeConfig

RuntimeConfig converts the legacy core.Config shape into the shared runtime configuration.

func (Config) Validate

func (cfg Config) Validate() error

Validate ensures the configuration is internally consistent.

type DispatcherAdapters

type DispatcherAdapters struct {
	Prepare      func(context.Context, Config) (*Preparation, error)
	Run          func(context.Context, Config) error
	FetchReviews func(context.Context, Config) (*FetchResult, error)
	Migrate      func(context.Context, MigrationConfig) (*MigrationResult, error)
	Sync         func(context.Context, SyncConfig) (*SyncResult, error)
	Archive      func(context.Context, ArchiveConfig) (*ArchiveResult, error)
}

DispatcherAdapters lets the kernel register dispatcher-backed core adapters without creating an import cycle from core back to kernel.

type FetchResult

type FetchResult = model.FetchResult

func FetchReviews

func FetchReviews(ctx context.Context, cfg Config) (*FetchResult, error)

func FetchReviewsDirect

func FetchReviewsDirect(ctx context.Context, cfg Config) (*FetchResult, error)

FetchReviewsDirect preserves access to the pre-dispatch fetch implementation for kernel handlers.

func FetchReviewsWithRegistryDirect

func FetchReviewsWithRegistryDirect(
	ctx context.Context,
	cfg Config,
	registry provider.RegistryReader,
) (*FetchResult, error)

func WriteFetchedReviewRoundDirect

func WriteFetchedReviewRoundDirect(pending *FetchedReviewItems) (*FetchResult, error)

WriteFetchedReviewRoundDirect writes a previously fetched non-empty review round.

type FetchedReviewItems

type FetchedReviewItems struct {
	Name       string
	Provider   string
	PR         string
	Round      int
	ReviewsDir string
	Items      []provider.ReviewItem
}

FetchedReviewItems captures normalized provider feedback before round files are written.

func FetchReviewItemsWithRegistryDirect

func FetchReviewItemsWithRegistryDirect(
	ctx context.Context,
	cfg Config,
	registry provider.RegistryReader,
) (*FetchedReviewItems, error)

FetchReviewItemsWithRegistryDirect fetches normalized review items without writing round files.

type IDE

type IDE string

IDE identifies the downstream coding tool that productize should invoke.

const (
	// IDECodex runs Codex jobs.
	IDECodex IDE = model.IDECodex
	// IDEClaude runs Claude Code jobs.
	IDEClaude IDE = model.IDEClaude
	// IDEDroid runs Droid jobs.
	IDEDroid IDE = model.IDEDroid
	// IDECursor runs Cursor Agent jobs.
	IDECursor IDE = model.IDECursor
	// IDEOpenCode runs OpenCode jobs.
	IDEOpenCode IDE = model.IDEOpenCode
	// IDEPi runs Pi jobs.
	IDEPi IDE = model.IDEPi
	// IDEGemini runs Gemini jobs.
	IDEGemini IDE = model.IDEGemini
	// IDECopilot runs GitHub Copilot CLI jobs.
	IDECopilot IDE = model.IDECopilot
)

type Job

type Job struct {
	CodeFiles       []string
	SafeName        string
	IDE             string
	Model           string
	ReasoningEffort string
	Prompt          []byte
	PromptPath      string
	StdoutLogPath   string
	StderrLogPath   string
	IssueCount      int
	// contains filtered or unexported fields
}

Job is a prepared execution unit with its generated artifacts.

func NewJob

func NewJob(jb model.Job) Job

NewJob clones a model job into the public core API shape.

type MigrationConfig

type MigrationConfig = model.MigrationConfig

type MigrationResult

type MigrationResult = model.MigrationResult

func Migrate

func Migrate(ctx context.Context, cfg MigrationConfig) (*MigrationResult, error)

func MigrateDirect

func MigrateDirect(ctx context.Context, cfg MigrationConfig) (*MigrationResult, error)

MigrateDirect preserves access to the pre-dispatch migration implementation for kernel handlers.

type Mode

type Mode string

Mode identifies the execution flow used by productize.

const (
	// ModePRReview processes PR review issue markdown files.
	ModePRReview Mode = model.ModeCodeReview
	// ModePRDTasks processes PRD task markdown files.
	ModePRDTasks Mode = model.ModePRDTasks
	// ModeExec processes one ad hoc prompt through the shared runtime.
	ModeExec Mode = model.ModeExec
)

type OutputFormat

type OutputFormat string

OutputFormat identifies the user-facing result contract for a run.

const (
	// OutputFormatText keeps the standard human-oriented presentation.
	OutputFormatText OutputFormat = OutputFormat(model.OutputFormatText)
	// OutputFormatJSON emits the lean machine-readable result contract.
	OutputFormatJSON OutputFormat = OutputFormat(model.OutputFormatJSON)
	// OutputFormatRawJSON emits the full machine-readable event stream.
	OutputFormatRawJSON OutputFormat = OutputFormat(model.OutputFormatRawJSON)
)

type Preparation

type Preparation struct {
	Jobs             []Job
	InputDir         string
	ResolvedPR       string
	ResolvedName     string
	ResolvedProvider string
	ResolvedRound    int
	InputDirPath     string
}

Preparation contains the resolved execution plan for a productize run.

func NewPreparation

func NewPreparation(prep *model.SolvePreparation) *Preparation

NewPreparation clones a solve preparation into the public core API shape.

func Prepare

func Prepare(ctx context.Context, cfg Config) (*Preparation, error)

Prepare resolves inputs, validates the environment, and generates batch artifacts.

type SyncConfig

type SyncConfig = model.SyncConfig

type SyncResult

type SyncResult = model.SyncResult

func Sync

func Sync(ctx context.Context, cfg SyncConfig) (*SyncResult, error)

func SyncDirect

func SyncDirect(ctx context.Context, cfg SyncConfig) (*SyncResult, error)

SyncDirect preserves access to the pre-dispatch sync implementation for kernel handlers.

func SyncWithDB

func SyncWithDB(
	ctx context.Context,
	db *globaldb.GlobalDB,
	workspace globaldb.Workspace,
	cfg SyncConfig,
) (*SyncResult, error)

SyncWithDB reconciles workflow artifacts into an already-open global.db.

type WorkflowArchiveForceRequiredError

type WorkflowArchiveForceRequiredError struct {
	WorkspaceID      string
	WorkflowID       string
	Slug             string
	Reason           string
	TaskTotal        int
	TaskNonTerminal  int
	ReviewTotal      int
	ReviewUnresolved int
}

WorkflowArchiveForceRequiredError reports a workflow archive conflict that can be resolved locally by completing tasks and resolving review issues.

func (WorkflowArchiveForceRequiredError) Error

func (WorkflowArchiveForceRequiredError) Is

Directories

Path Synopsis
Package extensions provides manifest parsing, discovery, declarative asset extraction, and local enablement state for Productize extensions.
Package extensions provides manifest parsing, discovery, declarative asset extraction, and local enablement state for Productize extensions.
builtin
Package builtin anchors the embedded extension discovery root.
Package builtin anchors the embedded extension discovery root.
Package kernel provides typed command dispatch for core engine operations.
Package kernel provides typed command dispatch for core engine operations.
commands
Package commands defines typed kernel command and result contracts.
Package commands defines typed kernel command and result contracts.
run
internal/worktree
Package worktree captures a deterministic fingerprint of a workspace's uncommitted state so callers can detect whether an arbitrary operation (an agent session, a hook, a task job) actually modified any files.
Package worktree captures a deterministic fingerprint of a workspace's uncommitted state so callers can detect whether an arbitrary operation (an agent session, a hook, a task job) actually modified any files.
Package sound provides optional audio notifications for run-lifecycle events.
Package sound provides optional audio notifications for run-lifecycle events.

Jump to

Keyboard shortcuts

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