controlplane

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2026 License: MIT Imports: 10 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 BuildModelRegistry added in v0.5.0

func BuildModelRegistry(descriptors []contract.RuntimeDescriptor) contract.ModelRegistry

func ExtractStructuredJSON added in v0.5.0

func ExtractStructuredJSON(output string, parser StructuredJSONParser) (string, string)

func FindSessionByIDOrProviderID added in v0.4.5

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

func HasModelOptions added in v0.5.0

func HasModelOptions(options ModelOptions) bool

func InferModelProvider added in v0.5.0

func InferModelProvider(model string) string

func InferRuntimeBackend added in v0.5.0

func InferRuntimeBackend(model string) string

func InferRuntimeProvider added in v0.5.0

func InferRuntimeProvider(model string) string

func InferTextGenerationProvider added in v0.4.7

func InferTextGenerationProvider(model string) string

func JSONObjectCandidates added in v0.5.0

func JSONObjectCandidates(output string) []string

func MarshalModelOptionsJSON added in v0.5.0

func MarshalModelOptionsJSON(options ModelOptions) 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

func NormalizeModelSelection added in v0.5.0

func NormalizeModelSelection(registry contract.ModelRegistry, selection contract.ModelSelection) contract.ModelSelection

func NormalizeRuntimeBackend added in v0.5.0

func NormalizeRuntimeBackend(value string) string

func NormalizeRuntimeProvider added in v0.5.0

func NormalizeRuntimeProvider(value string) string

func SupportedSessionBackends added in v0.5.0

func SupportedSessionBackends(descriptors []contract.RuntimeDescriptor) []string

func ValidateSessionBackend added in v0.5.0

func ValidateSessionBackend(descriptors []contract.RuntimeDescriptor, backend string) (*contract.RuntimeDescriptor, error)

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.

func MergeModelOptions added in v0.5.0

func MergeModelOptions(values ...ModelOptions) ModelOptions

func ParseModelOptionsJSON added in v0.5.0

func ParseModelOptionsJSON(value string) ModelOptions

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 RuntimeTarget added in v0.5.0

type RuntimeTarget struct {
	Backend  string       `json:"backend,omitempty"`
	Provider string       `json:"provider,omitempty"`
	Model    string       `json:"model,omitempty"`
	Options  ModelOptions `json:"options,omitempty"`
}

func ResolveRuntimeTarget added in v0.5.0

func ResolveRuntimeTarget(target RuntimeTarget) RuntimeTarget

func RuntimeTargetFromSelection added in v0.5.0

func RuntimeTargetFromSelection(selection contract.ModelSelection) RuntimeTarget

type RuntimeTargetValidationResult added in v0.5.0

type RuntimeTargetValidationResult struct {
	Target  RuntimeTarget               `json:"target"`
	Runtime *contract.RuntimeDescriptor `json:"runtime,omitempty"`
	Model   *contract.RuntimeModel      `json:"model_descriptor,omitempty"`
	Issues  []RuntimeValidationIssue    `json:"issues,omitempty"`
}

func ValidateSessionTarget added in v0.5.0

func ValidateSessionTarget(descriptors []contract.RuntimeDescriptor, target RuntimeTarget) RuntimeTargetValidationResult

func ValidateSessionTargetWithRegistry added in v0.5.0

func ValidateSessionTargetWithRegistry(registry contract.ModelRegistry, target RuntimeTarget) RuntimeTargetValidationResult

func (RuntimeTargetValidationResult) HasErrors added in v0.5.0

func (result RuntimeTargetValidationResult) HasErrors() bool

func (RuntimeTargetValidationResult) HasIssueCode added in v0.5.0

func (result RuntimeTargetValidationResult) HasIssueCode(code string) bool

type RuntimeValidationIssue added in v0.5.0

type RuntimeValidationIssue struct {
	Severity ValidationSeverity `json:"severity"`
	Code     string             `json:"code"`
	Message  string             `json:"message"`
}

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 StructuredJSONParser added in v0.5.0

type StructuredJSONParser func(candidate string) (rendered string, normalisedJSON string, ok bool)

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

type ValidationSeverity added in v0.5.0

type ValidationSeverity string
const (
	ValidationSeverityWarning ValidationSeverity = "warning"
	ValidationSeverityError   ValidationSeverity = "error"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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