esm

package
v1.1.62 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WorkerStatusContinue          = "continue"
	WorkerStatusCompleteCandidate = "complete_candidate"
	WorkerStatusBlockedCandidate  = "blocked_candidate"

	AuditVerdictPass = "pass"
	AuditVerdictFail = "fail"
)

Variables

View Source
var (
	ErrNotFound          = errors.New("esm objective not found")
	ErrObjectiveExists   = errors.New("esm objective already exists")
	ErrInvalidObjective  = errors.New("esm objective cannot be empty")
	ErrInvalidTransition = errors.New("invalid esm status transition")
	ErrBudgetStillHit    = errors.New("esm token budget is still exhausted")
)

Functions

func AuditTaskPrompt

func AuditTaskPrompt(obj *Objective) string

AuditTaskPrompt is the isolated read-only audit sub-agent task for a completion candidate.

func BudgetLimitMessage

func BudgetLimitMessage(obj *Objective) provider.Message

BudgetLimitMessage is injected into an active run once the ESM token budget is reached, so the model wraps up without starting new substantive work.

func BudgetLimitPrompt

func BudgetLimitPrompt(obj *Objective) string

func ContinuationMessage

func ContinuationMessage(obj *Objective) provider.Message

ContinuationMessage is used when the TUI starts an idle continuation run.

func ContinuationPrompt

func ContinuationPrompt(_ *Objective) string

func CriticTaskPrompt

func CriticTaskPrompt(obj *Objective) string

CriticTaskPrompt is the isolated skeptical review sub-agent task for a completion candidate. It runs before the verifier and is biased toward finding scope shrinkage, demos, and missing requirements.

func FormatObjective

func FormatObjective(obj *Objective) string

FormatObjective returns a compact plain-text representation safe for TUI and tools.

func IsRunnableStatus

func IsRunnableStatus(status Status) bool

IsRunnableStatus reports whether normal ESM tools should remain visible.

func IsUnfinishedStatus

func IsUnfinishedStatus(status Status) bool

IsUnfinishedStatus reports whether a status still represents an open objective. "complete" is terminal; clearing the objective deletes the row.

func IsUsageLimitError

func IsUsageLimitError(err error) bool

IsUsageLimitError applies a conservative text heuristic for provider/account limits that should stop unattended continuation.

func NewGetTool

func NewGetTool(store *Store, sessionID sessionIDFunc) tools.Tool

NewGetTool returns the model-facing ESM state query tool.

func NewUpdateTool

func NewUpdateTool(store *Store, sessionID sessionIDFunc, runID ...runIDFunc) tools.Tool

NewUpdateTool returns the model-facing ESM status update tool.

func SteeringMessage

func SteeringMessage(obj *Objective) provider.Message

SteeringMessage injects current ESM instructions into a run without changing the frozen system prompt.

func SteeringPrompt

func SteeringPrompt(obj *Objective) string

func WorkerTaskPrompt

func WorkerTaskPrompt(obj *Objective) string

WorkerTaskPrompt is the isolated worker sub-agent task for one ESM run.

Types

type AuditReport

type AuditReport struct {
	Verdict             string   `json:"verdict"`
	Review              string   `json:"review"`
	RequirementsChecked []string `json:"requirements_checked"`
	MissingWork         []string `json:"missing_work"`
	Evidence            []string `json:"evidence"`
}

AuditReport is the structured final response from an isolated ESM auditor.

func ParseAuditReport

func ParseAuditReport(text string) (AuditReport, error)

type Objective

type Objective struct {
	SessionID        string
	ESMID            string
	Objective        string
	Status           Status
	TokenBudget      *int64
	TokensUsed       int64
	TimeUsedMS       int64
	BlockedCount     int
	BlockedReason    string
	BlockedRunID     string
	CompletionReason string
	CompletionRunID  string
	CompletionReview string
	CreatedAt        time.Time
	UpdatedAt        time.Time
}

Objective is the per-session Enable Supervisor Mode objective.

func (*Objective) CanAutoRun

func (o *Objective) CanAutoRun() bool

CanAutoRun reports whether TUI idle continuation may start a new agent run.

func (*Objective) HasObjective

func (o *Objective) HasObjective() bool

HasObjective reports whether the row contains a real objective.

type Status

type Status string

Status is the persisted lifecycle state for a supervised objective.

const (
	StatusActive            Status = "active"
	StatusPaused            Status = "paused"
	StatusBlocked           Status = "blocked"
	StatusBudgetLimited     Status = "budget_limited"
	StatusUsageLimited      Status = "usage_limited"
	StatusCompleteCandidate Status = "complete_candidate"
	StatusComplete          Status = "complete"
)

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store persists Enable Supervisor Mode state in the shared sessions database.

func NewStore

func NewStore(sessionDir string) *Store

NewStore returns a store backed by the root sessions.db under sessionDir.

func (*Store) AccountUsage

func (s *Store) AccountUsage(ctx context.Context, sessionID string, tokens, durationMS int64) (*Objective, error)

AccountUsage accumulates one agent run's usage and applies token budget enforcement after the run finishes.

func (*Store) Clear

func (s *Store) Clear(ctx context.Context, sessionID string) error

Clear deletes the objective for a session.

func (*Store) Create

func (s *Store) Create(ctx context.Context, sessionID, objective string, budget *int64) (*Objective, error)

Create creates a new objective. A completed row may be replaced; unfinished objectives must be edited or cleared explicitly.

func (*Store) Edit

func (s *Store) Edit(ctx context.Context, sessionID, objective string) (*Objective, error)

Edit updates the objective text for an unfinished objective.

func (*Store) FinishRun

func (s *Store) FinishRun(ctx context.Context, sessionID, runID string) (*Objective, error)

FinishRun clears the repeated-blocker audit when an active ESM run finishes without reporting the same blocker. This makes blocked require consecutive ESM agent runs rather than repeated tool calls in one run.

func (*Store) Get

func (s *Store) Get(ctx context.Context, sessionID string) (*Objective, error)

Get returns the current objective for a session.

func (*Store) MarkCompleteFromAudit

func (s *Store) MarkCompleteFromAudit(ctx context.Context, sessionID, review string) (*Objective, error)

MarkCompleteFromAudit marks a completion candidate terminal complete after an independent ESM audit has verified the objective against the current state.

func (*Store) MarkUsageLimited

func (s *Store) MarkUsageLimited(ctx context.Context, sessionID string) (*Objective, error)

MarkUsageLimited records a runtime/provider limit and stops continuation.

func (*Store) Pause

func (s *Store) Pause(ctx context.Context, sessionID string) (*Objective, error)

Pause disables idle continuation for an unfinished objective.

func (*Store) RecordCompletionReview

func (s *Store) RecordCompletionReview(ctx context.Context, sessionID, review string) (*Objective, error)

RecordCompletionReview stores a completion rejection/review note without changing the current lifecycle state. This lets later worker runs learn why a previous completion claim was not accepted.

func (*Store) RejectCompletionCandidate

func (s *Store) RejectCompletionCandidate(ctx context.Context, sessionID, review string) (*Objective, error)

RejectCompletionCandidate returns a failed completion candidate to active so the next ESM worker run can continue from the auditor's findings.

func (*Store) Resume

func (s *Store) Resume(ctx context.Context, sessionID string) (*Objective, error)

Resume returns paused/blocked/limited objectives to active when allowed.

func (*Store) SetBudget

func (s *Store) SetBudget(ctx context.Context, sessionID string, budget *int64) (*Objective, error)

SetBudget sets or clears the token budget. It does not implicitly resume a budget-limited objective; users must run /esm resume after raising/removing it.

func (*Store) UpdateFromModel

func (s *Store) UpdateFromModel(ctx context.Context, sessionID string, status Status, reason string) (*Objective, error)

UpdateFromModel accepts the two model-controlled transitions: complete and blocked. Complete records a candidate only; the orchestrator must audit the candidate before marking the objective terminal complete. Blocked transitions should normally use UpdateFromModelForRun so the repeated-blocker audit is counted across consecutive agent runs.

func (*Store) UpdateFromModelForRun

func (s *Store) UpdateFromModelForRun(ctx context.Context, sessionID string, status Status, reason, runID string) (*Objective, error)

UpdateFromModelForRun accepts model-controlled complete/blocked transitions. Complete becomes complete_candidate, never terminal complete. The terminal complete state is reserved for the ESM orchestrator after an independent audit sub-agent passes. Blocked only becomes terminal after the same blocker repeats in three consecutive ESM agent runs. A run can contribute at most once to the audit.

type WorkerReport

type WorkerReport struct {
	Status        string   `json:"status"`
	Summary       string   `json:"summary"`
	Evidence      []string `json:"evidence"`
	RemainingWork []string `json:"remaining_work"`
	Blockers      []string `json:"blockers"`
}

WorkerReport is the structured final response from an isolated ESM worker.

func ParseWorkerReport

func ParseWorkerReport(text string) (WorkerReport, error)

Jump to

Keyboard shortcuts

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