Documentation
¶
Index ¶
- Constants
- func ExecuteProgram(ctx context.Context, missions []ProgramMission, ...) ([]runstate.ProgramMissionState, error)
- func LoadOrCreateReceiptKey(root string) ([]byte, error)
- func PersistProgramExecution(root string, run *runstate.Run, states []runstate.ProgramMissionState) error
- func RegisterTool(server *mcp.Server, root string)
- func RegisterToolWithTaskManager(server *mcp.Server, root string, manager *verify.TaskManager)
- func ScopesConflict(path string, allowed, forbidden []string) bool
- 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 MissionOutcome
- type OpenData
- type OpenInput
- type OpenResult
- type PolicyDecision
- type ProgramMission
- type RemediationAction
- type RemediationDecision
- type RemediationMissionSpec
- type RemediationPlan
- type ReviewReceipt
- type RunStatus
- 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" )
Variables ¶
This section is empty.
Functions ¶
func ExecuteProgram ¶
func ExecuteProgram(ctx context.Context, missions []ProgramMission, execute func(int) (MissionOutcome, 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 PersistProgramExecution ¶
func RegisterTool ¶
func RegisterToolWithTaskManager ¶
func RegisterToolWithTaskManager(server *mcp.Server, root string, manager *verify.TaskManager)
func ScopesConflict ¶
ScopesConflict is the single write-scope verdict shared by workspace gates and SDD lint. It fails closed when a path is not explicitly allowed or is explicitly forbidden.
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 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 RunStatus ¶
type RunStatus 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 StatusData ¶
type StatusData struct {
Runs []RunStatus `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)