workspace

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2026 License: MIT Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MissionPending   = "pending"
	MissionApplied   = "applied"
	MissionEscalated = "escalated"
	MissionBlocked   = "blocked"
)
View Source
const (
	WorkspaceOpenToolName   = "jacu_workspace_open"
	WorkspaceStatusToolName = "jacu_status"
	WorkspaceStatusAlias    = "jacu_workspace_status"
	DiffToolName            = "jacu_diff"
	ApplyToolName           = "jacu_apply"
	DiscardToolName         = "jacu_discard"
)
View Source
const CLIHostName = "jacu-cli"

Variables

This section is empty.

Functions

func AutonomyDeliverConfigured added in v0.4.0

func AutonomyDeliverConfigured() bool

AutonomyDeliverConfigured reports whether a surface wired delivery. When it is false a program with deliver_at_end merges every mission locally and then warns instead of opening the pull request.

func ExecuteCompiledProgram added in v0.4.0

func ExecuteCompiledProgram(ctx context.Context, program *runstate.Program, missions []ProgramMission, execute func(int) (MissionOutcome, error), deliver func() error) ([]runstate.ProgramMissionState, error)

func ExecuteProgram

func ExecuteProgram(ctx context.Context, missions []ProgramMission, execute func(int) (MissionOutcome, error)) ([]runstate.ProgramMissionState, error)

func ExecuteProgramWithDelivery added in v0.4.0

func ExecuteProgramWithDelivery(ctx context.Context, missions []ProgramMission, execute func(int) (MissionOutcome, error), deliverAtEnd bool, deliver func() error) ([]runstate.ProgramMissionState, error)

func LoadOrCreateReceiptKey

func LoadOrCreateReceiptKey(root string) ([]byte, error)

LoadOrCreateReceiptKey keeps the local HMAC key inside the repository's private Jacu metadata. The key is never returned in an API result or log.

func LoadProtectedPaths added in v0.4.0

func LoadProtectedPaths(root string) ([]string, error)

func PersistProgramExecution

func PersistProgramExecution(root string, run *runstate.Run, states []runstate.ProgramMissionState) error

func ProtectedPath added in v0.4.0

func ProtectedPath(path string, protected []string) bool

func RegisterTool

func RegisterTool(server *mcp.Server, root string)

func RegisterToolWithTaskManager

func RegisterToolWithTaskManager(server *mcp.Server, root string, manager *verify.TaskManager)

func RunApply added in v0.4.0

func RunApply(ctx context.Context, root string, in ApplyInput, hostName string) capabilityruntime.Result

func RunDiff added in v0.4.0

func RunDiff(ctx context.Context, root string, in DiffInput) capabilityruntime.Result

func RunDiscard added in v0.4.0

func RunDiscard(ctx context.Context, root string, in DiscardInput) capabilityruntime.Result

func RunOpen added in v0.4.0

func RunOpen(ctx context.Context, root string, in OpenInput) capabilityruntime.Result

func RunStatus

func RunStatus(ctx context.Context, root string, in StatusInput) capabilityruntime.Result

func RunStatusWithManager added in v0.4.0

func RunStatusWithManager(ctx context.Context, root string, in StatusInput, manager *verify.TaskManager) capabilityruntime.Result

func SetAutonomyDeliver added in v0.4.0

func SetAutonomyDeliver(fn func(context.Context, string) error)

func ValidateReviewReceipt

func ValidateReviewReceipt(receipt ReviewReceipt, key []byte, expectedRunID, expectedDigest string, now time.Time) error

func WriteReviewReceipt

func WriteReviewReceipt(root string, receipt ReviewReceipt) (string, error)

Types

type ApplyData

type ApplyData struct {
	CommitSHA string `json:"commit_sha"`
	Branch    string `json:"branch"`
	Stderr    string `json:"stderr"`
}

type ApplyInput

type ApplyInput struct {
	RunID              string `json:"run_id"`
	ApproveDestructive bool   `json:"approve_destructive,omitempty"`
}

type ApplyResult

type ApplyResult struct {
	Status      string
	Summary     string
	Data        ApplyData
	Warnings    []string
	NextActions []string
}

func Apply

func Apply(ctx context.Context, root string, in ApplyInput, hostName string) (ApplyResult, error)

type AutonomyPolicy

type AutonomyPolicy struct {
	Require       []string `json:"require"`
	RiskMax       string   `json:"risk_max"`
	MaxIterations int      `json:"max_iterations"`
	OnViolation   string   `json:"on_violation"`
}

AutonomyPolicy is the immutable, project-root policy for automatic apply. It intentionally contains no executor/session identity: the receipt is an audit artifact, while this policy only decides whether the runtime may act.

func LoadAutonomyPolicy

func LoadAutonomyPolicy(root string) (AutonomyPolicy, bool, error)

type CheckClass

type CheckClass string
const (
	CheckLint  CheckClass = "lint"
	CheckTest  CheckClass = "test"
	CheckBuild CheckClass = "build"
	CheckVuln  CheckClass = "vuln"
	CheckFlaky CheckClass = "flaky"
	CheckOther CheckClass = "other"
)

func ClassifyCheckFailure

func ClassifyCheckFailure(check, evidence string) CheckClass

type DiffData

type DiffData struct {
	Digest     string   `json:"digest"`
	Files      []string `json:"files"`
	Added      int      `json:"added"`
	Deleted    int      `json:"deleted"`
	InScope    []string `json:"in_scope"`
	OutOfScope []string `json:"out_of_scope"`
	Diff       string   `json:"diff"`
}

type DiffInput

type DiffInput struct {
	RunID string `json:"run_id"`
}

type DiffResult

type DiffResult struct {
	Status   string
	Summary  string
	Data     DiffData
	Warnings []string
}

func WorkspaceDiff

func WorkspaceDiff(ctx context.Context, root string, in DiffInput) (DiffResult, error)

type DiscardData

type DiscardData struct {
	Runs     []DiscardedRun   `json:"runs"`
	Failures []DiscardFailure `json:"failures"`
}

type DiscardFailure

type DiscardFailure struct {
	RunID         string   `json:"run_id"`
	Error         string   `json:"error"`
	ArchivePatch  string   `json:"archive_patch"`
	ArchiveDigest string   `json:"archive_digest"`
	Actions       []string `json:"actions"`
}

type DiscardInput

type DiscardInput struct {
	RunID string `json:"run_id,omitempty"`
	GC    bool   `json:"gc,omitempty"`
}

type DiscardResult

type DiscardResult struct {
	Status      string
	Summary     string
	Data        DiscardData
	Warnings    []string
	NextActions []string
}

func Discard

func Discard(ctx context.Context, root string, in DiscardInput) (DiscardResult, error)

type DiscardedRun

type DiscardedRun struct {
	RunID         string   `json:"run_id"`
	ArchivePatch  string   `json:"archive_patch"`
	ArchiveDigest string   `json:"archive_digest"`
	Actions       []string `json:"actions"`
}

type ListedRun added in v0.4.0

type ListedRun struct {
	RunID        string          `json:"run_id"`
	Status       runstate.Status `json:"status"`
	AgeSeconds   int64           `json:"age_seconds"`
	DiskBytes    int64           `json:"disk_bytes"`
	DiffLines    int             `json:"diff_lines"`
	BaseBehind   int             `json:"base_behind"`
	ProgramID    string          `json:"program_id,omitempty"`
	ProgramIndex int             `json:"program_index,omitempty"`
}

type MissionOutcome

type MissionOutcome struct {
	Status         string
	Objective      string
	DiffDigest     string
	Verdict        string
	EvidenceDigest string
	ReceiptRef     string
	Iterations     int
	Warnings       []string
}

type OpenData

type OpenData struct {
	RunID        string `json:"run_id"`
	Branch       string `json:"branch"`
	WorktreePath string `json:"worktree_path"`
	BaseSHA      string `json:"base_sha"`
}

type OpenInput

type OpenInput struct {
	MissionInput missioncompile.Input `json:"mission_input"`
	MissionID    string               `json:"mission_id"`
}

type OpenResult

type OpenResult struct {
	Status   string
	Summary  string
	Data     OpenData
	Warnings []string
}

func Open

func Open(ctx context.Context, root string, in OpenInput) (OpenResult, error)

type PolicyDecision

type PolicyDecision struct {
	Allowed  bool
	Escalate bool
	Reason   string
}

func EvaluateAutoApplyPolicy

func EvaluateAutoApplyPolicy(policy AutonomyPolicy, verdict, risk string, receiptValid bool, iteration int) PolicyDecision

type ProgramMission

type ProgramMission struct {
	Index int
	After []int
}

type RemediationAction

type RemediationAction string
const (
	RemediationRerun    RemediationAction = "rerun"
	RemediationMission  RemediationAction = "remediation_mission"
	RemediationEscalate RemediationAction = "escalate"
)

type RemediationDecision

type RemediationDecision struct {
	Action RemediationAction
	Check  string
	Budget int
	Reason string
}

func NextRemediation

func NextRemediation(check string, class CheckClass, priorFailures int) RemediationDecision

type RemediationMissionSpec

type RemediationMissionSpec struct {
	Objective        string
	Check            string
	Class            CheckClass
	AllowedPaths     []string
	BudgetIterations int
	EvidenceDigest   string
	Reason           string
}

type RemediationPlan

type RemediationPlan struct {
	Decision RemediationDecision
	Mission  *RemediationMissionSpec
}

func BuildRemediationPlan

func BuildRemediationPlan(failure runner.CheckFailureEvidence, priorFailures int) RemediationPlan

type ReviewReceipt

type ReviewReceipt struct {
	RunID      string    `json:"run_id"`
	DiffDigest string    `json:"diff_digest"`
	Verdict    string    `json:"verdict"`
	Reasons    []string  `json:"reasons"`
	CreatedAt  time.Time `json:"created_at"`
	Signature  string    `json:"signature"`
}

ReviewReceipt is deliberately limited to facts this runtime can attest: verdict, digest, reasons, and timestamp. It has no reviewer-session claim.

func ConsumeReviewReceipt

func ConsumeReviewReceipt(root, runID, diffDigest string, key []byte, now time.Time) (ReviewReceipt, error)

func SignReviewReceipt

func SignReviewReceipt(receipt ReviewReceipt, key []byte) (ReviewReceipt, error)

type StatusData

type StatusData struct {
	Runs  []ListedRun           `json:"runs"`
	Tasks []verify.TaskSnapshot `json:"tasks,omitempty"`
}

type StatusInput

type StatusInput struct {
	TaskID string `json:"task_id,omitempty"`
}

type StatusResult

type StatusResult struct {
	Status   string
	Summary  string
	Data     StatusData
	Warnings []string
}

func WorkspaceStatus

func WorkspaceStatus(ctx context.Context, root string) (StatusResult, error)

func WorkspaceStatusWithTasks

func WorkspaceStatusWithTasks(ctx context.Context, root string, manager *verify.TaskManager, input StatusInput) (StatusResult, error)

Jump to

Keyboard shortcuts

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