Documentation
¶
Overview ¶
Package agent provides the agent runtime pool and runner for processing tasks as goroutines with session lifecycle management and cost recording.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrPoolShutdown = errors.New("pool is shut down")
ErrPoolShutdown is returned when Submit is called on a shut-down pool.
Functions ¶
func BranchSlug ¶ added in v0.1.5
BranchSlug generates a branch name from an issue number and title. Format: agent/issue-{N}-{slug}, truncated to 50 chars.
func BuildSystemPrompt ¶ added in v0.1.3
BuildSystemPrompt dispatches to per-agent-type prompt builders and appends file context when available. Agent types that are not AI-driven (human, orchestrator, dispatcher) return an empty string.
Types ¶
type FileEdit ¶ added in v0.1.5
FileEdit represents a single file edit extracted from an agent response.
type ParseResponse ¶ added in v0.1.5
ParseResponse holds the parsed result of an agent's response.
func ParseEditBlocks ¶ added in v0.1.5
func ParseEditBlocks(response string) *ParseResponse
ParseEditBlocks extracts EDIT/END file blocks and the PR_TITLE line from an agent response string. Returns nil edits if no EDIT blocks found.
type Pool ¶
type Pool struct {
// contains filtered or unexported fields
}
Pool manages a fixed set of worker goroutines that process agent tasks.
func NewPool ¶
func NewPool(registry *provider.Registry, tracker forge.IssueTracker, st store.Store, costs *cost.Tracker, workers int) *Pool
NewPool creates a pool with the given number of worker goroutines and starts them immediately. If workers is <= 0, it defaults to 3.
func (*Pool) Done ¶
func (p *Pool) Done() <-chan struct{}
Done returns a channel that is closed after Shutdown completes.
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner executes a single agent task: sends the issue to an AI provider, records cost, and posts the response as an issue comment or opens a PR.
func NewRunner ¶
func NewRunner(p provider.Provider, model string, tracker forge.IssueTracker, st store.Store, costs *cost.Tracker) *Runner
NewRunner creates a runner bound to a specific provider and model. The repoWriter and prManager are optional; when nil, code-gen/test agents fall back to posting comments instead of opening PRs.
func (*Runner) Run ¶
Run processes a single task through the AI provider pipeline.
Steps:
- Update session status to "active"
- Check budget -- if exceeded, mark "failed" and return
- Build system prompt and chat request
- Call provider.Chat
- Record cost via cost tracker
- Post response as issue comment
- Mark session "completed"
On any error, the session is marked "failed" and an error comment is posted.
func (*Runner) SetPRManager ¶ added in v0.1.5
func (r *Runner) SetPRManager(pm forge.PullRequestManager)
SetPRManager configures pull request operations.
func (*Runner) SetRepoWriter ¶ added in v0.1.5
func (r *Runner) SetRepoWriter(rw forge.RepoWriter)
SetRepoWriter configures write access for branch/file operations.