controlplane

package
v0.4.7 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MetadataKeyTitle    = "title"
	MetadataKeySystem   = "system"
	MetadataKeyAgent    = "agent"
	MetadataKeyModel    = "model"
	MetadataKeyProvider = "provider"
	MetadataKeyTools    = "tools"
)

Variables

View Source
var DefaultNoToolTurnTools = []string{
	"bash",
	"edit",
	"glob",
	"grep",
	"list",
	"patch",
	"read",
	"todowrite",
	"webfetch",
	"write",
}
View Source
var ErrMissingStructuredResult = errors.New("structured result not found")

Functions

func AdoptOrResumeSession added in v0.4.5

func AdoptOrResumeSession(
	ctx context.Context,
	controller SessionController,
	runtime string,
	request ResumeSessionRequest,
) (*contract.RuntimeSession, error)

func FindSessionByIDOrProviderID added in v0.4.5

func FindSessionByIDOrProviderID(
	sessions []contract.RuntimeSession,
	sessionID string,
	providerSessionID string,
) (*contract.RuntimeSession, bool)

func InferTextGenerationProvider added in v0.4.7

func InferTextGenerationProvider(model string) string

func MetadataForNoToolTurn added in v0.4.5

func MetadataForNoToolTurn(metadata map[string]any) map[string]any

func MetadataWithDisabledTools added in v0.4.5

func MetadataWithDisabledTools(metadata map[string]any, tools ...string) map[string]any

Types

type BranchNameInput added in v0.4.7

type BranchNameInput struct {
	ModelSelection TextGenerationModelSelection
	Summary        string
	Metadata       map[string]any
}

type BranchNameOutput added in v0.4.7

type BranchNameOutput struct {
	Name     string
	Metadata map[string]any
}

type CommitMessageInput added in v0.4.7

type CommitMessageInput struct {
	ModelSelection TextGenerationModelSelection
	Diff           string
	Instruction    string
	Metadata       map[string]any
}

type CommitMessageOutput added in v0.4.7

type CommitMessageOutput struct {
	Message  string
	Metadata map[string]any
}

type ModelOptions added in v0.4.7

type ModelOptions struct {
	ReasoningEffort string `json:"reasoning_effort,omitempty"`
	ThinkingLevel   string `json:"thinking_level,omitempty"`
	ThinkingBudget  *int   `json:"thinking_budget,omitempty"`
}

ModelOptions carries provider model controls that need to cross the generic control-plane API. Providers ignore fields they do not understand.

type PrContentInput added in v0.4.7

type PrContentInput struct {
	ModelSelection TextGenerationModelSelection
	Diff           string
	Title          string
	Instruction    string
	Metadata       map[string]any
}

type PrContentOutput added in v0.4.7

type PrContentOutput struct {
	Title    string
	Body     string
	Metadata map[string]any
}

type RespondRequest

type RespondRequest struct {
	SessionID string
	RequestID string
	Action    contract.RespondAction
	Text      string
	OptionID  string
	Answers   []contract.RequestAnswer
	Metadata  map[string]any
}

func (*RespondRequest) Normalize

func (request *RespondRequest) Normalize()

func (RespondRequest) Validate

func (request RespondRequest) Validate() error

type ResumeSessionRequest

type ResumeSessionRequest struct {
	SessionID         string
	ProviderSessionID string
	CWD               string
	Model             string
	ModelOptions      ModelOptions
	Metadata          map[string]any
}

type RuntimeMetadata added in v0.4.5

type RuntimeMetadata struct {
	Title    string
	System   string
	Agent    string
	Model    string
	Provider string
	Labels   map[string]string
	Extra    map[string]any
}

func (RuntimeMetadata) Map added in v0.4.5

func (metadata RuntimeMetadata) Map() map[string]any

type SendInputRequest

type SendInputRequest struct {
	SessionID string
	Text      string
	Metadata  map[string]any
}

type SessionController added in v0.4.5

type SessionController interface {
	ListSessions(context.Context, string) ([]contract.RuntimeSession, error)
	ResumeSession(context.Context, string, ResumeSessionRequest) (*contract.RuntimeSession, error)
}

type StartSessionRequest

type StartSessionRequest struct {
	SessionID    string
	CWD          string
	Model        string
	ModelOptions ModelOptions
	Prompt       string
	Metadata     map[string]any
}

type StructuredResultExtractor added in v0.4.5

type StructuredResultExtractor func(values ...string) (rendered string, normalisedJSON string)

type StructuredSessionController added in v0.4.5

type StructuredSessionController interface {
	SubscribeEvents(buffer int) (<-chan contract.RuntimeEvent, func())
	StartSession(context.Context, string, StartSessionRequest) (*contract.RuntimeSession, error)
	SendInput(context.Context, SendInputRequest) (*contract.RuntimeEvent, error)
}

type StructuredSessionOptions added in v0.4.5

type StructuredSessionOptions struct {
	EventBuffer int
	TickEvery   time.Duration

	Extract StructuredResultExtractor

	RepairPrompt   string
	RepairMetadata map[string]any
	MaxRepairTurns int

	OnSessionStarted          func(context.Context, *contract.RuntimeSession) error
	OnTick                    func(context.Context, string) error
	OnEvent                   func(context.Context, contract.RuntimeEvent) error
	OnTurnEvents              func(context.Context, string) error
	OnMissingStructuredResult func(context.Context) error
}

type StructuredSessionResult added in v0.4.5

type StructuredSessionResult struct {
	Session       *contract.RuntimeSession
	Text          string
	JSON          string
	Repaired      bool
	RepairAttempt int
}

func RunStructuredSession added in v0.4.5

func RunStructuredSession(
	ctx context.Context,
	controller StructuredSessionController,
	runtime string,
	request StartSessionRequest,
	options StructuredSessionOptions,
) (StructuredSessionResult, error)

type TextGenerationModelSelection added in v0.4.7

type TextGenerationModelSelection struct {
	Provider  string
	Model     string
	Options   ModelOptions
	Fallbacks []string
}

type TextGenerationProvider added in v0.4.7

type TextGenerationProvider interface {
	GenerateCommitMessage(context.Context, CommitMessageInput) (*CommitMessageOutput, error)
	GeneratePrContent(context.Context, PrContentInput) (*PrContentOutput, error)
	GenerateBranchName(context.Context, BranchNameInput) (*BranchNameOutput, error)
	GenerateThreadTitle(context.Context, ThreadTitleInput) (*ThreadTitleOutput, error)
}

type TextGenerationRouter added in v0.4.7

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

func NewTextGenerationRouter added in v0.4.7

func NewTextGenerationRouter(defaultProvider string, providers map[string]TextGenerationProvider) *TextGenerationRouter

func (*TextGenerationRouter) GenerateBranchName added in v0.4.7

func (r *TextGenerationRouter) GenerateBranchName(ctx context.Context, providerName string, input BranchNameInput) (*BranchNameOutput, error)

func (*TextGenerationRouter) GenerateBranchNameForSelection added in v0.4.7

func (r *TextGenerationRouter) GenerateBranchNameForSelection(ctx context.Context, input BranchNameInput) (*BranchNameOutput, error)

func (*TextGenerationRouter) GenerateCommitMessage added in v0.4.7

func (r *TextGenerationRouter) GenerateCommitMessage(ctx context.Context, providerName string, input CommitMessageInput) (*CommitMessageOutput, error)

func (*TextGenerationRouter) GenerateCommitMessageForSelection added in v0.4.7

func (r *TextGenerationRouter) GenerateCommitMessageForSelection(ctx context.Context, input CommitMessageInput) (*CommitMessageOutput, error)

func (*TextGenerationRouter) GeneratePrContent added in v0.4.7

func (r *TextGenerationRouter) GeneratePrContent(ctx context.Context, providerName string, input PrContentInput) (*PrContentOutput, error)

func (*TextGenerationRouter) GeneratePrContentForSelection added in v0.4.7

func (r *TextGenerationRouter) GeneratePrContentForSelection(ctx context.Context, input PrContentInput) (*PrContentOutput, error)

func (*TextGenerationRouter) GenerateThreadTitle added in v0.4.7

func (r *TextGenerationRouter) GenerateThreadTitle(ctx context.Context, providerName string, input ThreadTitleInput) (*ThreadTitleOutput, error)

func (*TextGenerationRouter) GenerateThreadTitleForSelection added in v0.4.7

func (r *TextGenerationRouter) GenerateThreadTitleForSelection(ctx context.Context, input ThreadTitleInput) (*ThreadTitleOutput, error)

func (*TextGenerationRouter) Providers added in v0.4.7

func (r *TextGenerationRouter) Providers() []string

func (*TextGenerationRouter) Register added in v0.4.7

func (r *TextGenerationRouter) Register(providerName string, provider TextGenerationProvider)

func (*TextGenerationRouter) ResolveSelection added in v0.4.7

func (*TextGenerationRouter) Route added in v0.4.7

func (r *TextGenerationRouter) Route(providerName string) (TextGenerationProvider, error)

func (*TextGenerationRouter) RouteSelection added in v0.4.7

type ThreadTitleInput added in v0.4.7

type ThreadTitleInput struct {
	ModelSelection TextGenerationModelSelection
	Prompt         string
	Metadata       map[string]any
}

type ThreadTitleOutput added in v0.4.7

type ThreadTitleOutput struct {
	Title    string
	Metadata map[string]any
}

type TurnAccumulator added in v0.4.5

type TurnAccumulator struct {
	EventLines  []string
	JoinedText  strings.Builder
	LatestDelta string
	FinalText   string
}

func (*TurnAccumulator) Add added in v0.4.5

func (t *TurnAccumulator) Add(event contract.RuntimeEvent)

func (*TurnAccumulator) EventsJSONL added in v0.4.5

func (t *TurnAccumulator) EventsJSONL() string

func (*TurnAccumulator) HasEvents added in v0.4.5

func (t *TurnAccumulator) HasEvents() bool

func (*TurnAccumulator) JoinedDelta added in v0.4.5

func (t *TurnAccumulator) JoinedDelta() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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