Documentation
¶
Index ¶
- Constants
- func AutonomyDeliverConfigured() bool
- func ExecuteCompiledProgram(ctx context.Context, program *runstate.Program, missions []ProgramMission, ...) ([]runstate.ProgramMissionState, error)
- func ExecuteProgram(ctx context.Context, missions []ProgramMission, ...) ([]runstate.ProgramMissionState, error)
- func ExecuteProgramWithDelivery(ctx context.Context, missions []ProgramMission, ...) ([]runstate.ProgramMissionState, error)
- func LoadOrCreateReceiptKey(root string) ([]byte, error)
- func LoadProtectedPaths(root string) ([]string, error)
- func PersistProgramExecution(root string, run *runstate.Run, states []runstate.ProgramMissionState) error
- func ProtectedPath(path string, protected []string) bool
- func RegisterTool(server *mcp.Server, root string)
- func RegisterToolWithTaskManager(server *mcp.Server, root string, manager *verify.TaskManager)
- func RunApply(ctx context.Context, root string, in ApplyInput, hostName string) capabilityruntime.Result
- func RunDiff(ctx context.Context, root string, in DiffInput) capabilityruntime.Result
- func RunDiscard(ctx context.Context, root string, in DiscardInput) capabilityruntime.Result
- func RunOpen(ctx context.Context, root string, in OpenInput) capabilityruntime.Result
- func RunStatus(ctx context.Context, root string, in StatusInput) capabilityruntime.Result
- func RunStatusWithManager(ctx context.Context, root string, in StatusInput, manager *verify.TaskManager) capabilityruntime.Result
- func SetAutonomyDeliver(fn func(context.Context, string) error)
- func ValidateReviewReceipt(receipt ReviewReceipt, key []byte, expectedRunID, expectedDigest string, ...) error
- func WriteReviewReceipt(root string, receipt ReviewReceipt) (string, error)
- type ApplyData
- type ApplyInput
- type ApplyResult
- type AutonomyPolicy
- type CheckClass
- type DiffData
- type DiffInput
- type DiffResult
- type DiscardData
- type DiscardFailure
- type DiscardInput
- type DiscardResult
- type DiscardedRun
- type ListedRun
- type MissionOutcome
- type OpenData
- type OpenInput
- type OpenResult
- type PolicyDecision
- type ProgramMission
- type RemediationAction
- type RemediationDecision
- type RemediationMissionSpec
- type RemediationPlan
- type ReviewReceipt
- type StatusData
- type StatusInput
- type StatusResult
Constants ¶
const ( MissionPending = "pending" MissionApplied = "applied" MissionEscalated = "escalated" MissionBlocked = "blocked" )
const ( WorkspaceOpenToolName = "jacu_workspace_open" WorkspaceStatusToolName = "jacu_status" WorkspaceStatusAlias = "jacu_workspace_status" DiffToolName = "jacu_diff" ApplyToolName = "jacu_apply" DiscardToolName = "jacu_discard" )
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 ¶
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 PersistProgramExecution ¶
func ProtectedPath ¶ added in v0.4.0
func RegisterTool ¶
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 RunDiscard ¶ added in v0.4.0
func RunDiscard(ctx context.Context, root string, in DiscardInput) 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 ValidateReviewReceipt ¶
func WriteReviewReceipt ¶
func WriteReviewReceipt(root string, receipt ReviewReceipt) (string, error)
Types ¶
type ApplyInput ¶
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 DiffResult ¶
func WorkspaceDiff ¶
type DiscardData ¶
type DiscardData struct {
Runs []DiscardedRun `json:"runs"`
Failures []DiscardFailure `json:"failures"`
}
type DiscardFailure ¶
type DiscardInput ¶
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 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 OpenInput ¶
type OpenInput struct {
MissionInput missioncompile.Input `json:"mission_input"`
MissionID string `json:"mission_id"`
}
type OpenResult ¶
type PolicyDecision ¶
func EvaluateAutoApplyPolicy ¶
func EvaluateAutoApplyPolicy(policy AutonomyPolicy, verdict, risk string, receiptValid bool, iteration int) PolicyDecision
type ProgramMission ¶
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 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 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)