Documentation
¶
Index ¶
- Constants
- Variables
- func AdoptOrResumeSession(ctx context.Context, controller SessionController, runtime string, ...) (*contract.RuntimeSession, error)
- func BuildModelRegistry(descriptors []contract.RuntimeDescriptor) contract.ModelRegistry
- func ExtractStructuredJSON(output string, parser StructuredJSONParser) (string, string)
- func FindSessionByIDOrProviderID(sessions []contract.RuntimeSession, sessionID string, providerSessionID string) (*contract.RuntimeSession, bool)
- func HasModelOptions(options ModelOptions) bool
- func InferModelProvider(model string) string
- func InferRuntimeBackend(model string) string
- func InferRuntimeProvider(model string) string
- func InferTextGenerationProvider(model string) string
- func JSONObjectCandidates(output string) []string
- func MarshalModelOptionsJSON(options ModelOptions) string
- func MetadataForNoToolTurn(metadata map[string]any) map[string]any
- func MetadataWithDisabledTools(metadata map[string]any, tools ...string) map[string]any
- func NormalizeModelSelection(registry contract.ModelRegistry, selection contract.ModelSelection) contract.ModelSelection
- func NormalizeRuntimeBackend(value string) string
- func NormalizeRuntimeProvider(value string) string
- func SupportedSessionBackends(descriptors []contract.RuntimeDescriptor) []string
- func ValidateSessionBackend(descriptors []contract.RuntimeDescriptor, backend string) (*contract.RuntimeDescriptor, error)
- type BranchNameInput
- type BranchNameOutput
- type CommitMessageInput
- type CommitMessageOutput
- type ModelOptions
- type PrContentInput
- type PrContentOutput
- type Provider
- type RespondRequest
- type ResumeSessionRequest
- type RuntimeMetadata
- type RuntimeTarget
- type RuntimeTargetValidationResult
- type RuntimeValidationIssue
- type SendInputRequest
- type SessionController
- type StartSessionRequest
- type StructuredJSONParser
- type StructuredResultExtractor
- type StructuredSessionController
- type StructuredSessionOptions
- type StructuredSessionResult
- type TextGenerationModelSelection
- type TextGenerationProvider
- type TextGenerationRouter
- func (r *TextGenerationRouter) GenerateBranchName(ctx context.Context, providerName string, input BranchNameInput) (*BranchNameOutput, error)
- func (r *TextGenerationRouter) GenerateBranchNameForSelection(ctx context.Context, input BranchNameInput) (*BranchNameOutput, error)
- func (r *TextGenerationRouter) GenerateCommitMessage(ctx context.Context, providerName string, input CommitMessageInput) (*CommitMessageOutput, error)
- func (r *TextGenerationRouter) GenerateCommitMessageForSelection(ctx context.Context, input CommitMessageInput) (*CommitMessageOutput, error)
- func (r *TextGenerationRouter) GeneratePrContent(ctx context.Context, providerName string, input PrContentInput) (*PrContentOutput, error)
- func (r *TextGenerationRouter) GeneratePrContentForSelection(ctx context.Context, input PrContentInput) (*PrContentOutput, error)
- func (r *TextGenerationRouter) GenerateThreadTitle(ctx context.Context, providerName string, input ThreadTitleInput) (*ThreadTitleOutput, error)
- func (r *TextGenerationRouter) GenerateThreadTitleForSelection(ctx context.Context, input ThreadTitleInput) (*ThreadTitleOutput, error)
- func (r *TextGenerationRouter) Providers() []string
- func (r *TextGenerationRouter) Register(providerName string, provider TextGenerationProvider)
- func (r *TextGenerationRouter) ResolveSelection(selection TextGenerationModelSelection) TextGenerationModelSelection
- func (r *TextGenerationRouter) Route(providerName string) (TextGenerationProvider, error)
- func (r *TextGenerationRouter) RouteSelection(selection TextGenerationModelSelection) (TextGenerationProvider, error)
- type ThreadTitleInput
- type ThreadTitleOutput
- type TurnAccumulator
- type ValidationSeverity
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 InferRuntimeBackend ¶ added in v0.5.0
func InferRuntimeProvider ¶ added in v0.5.0
func InferTextGenerationProvider ¶ added in v0.4.7
func JSONObjectCandidates ¶ added in v0.5.0
func MarshalModelOptionsJSON ¶ added in v0.5.0
func MarshalModelOptionsJSON(options ModelOptions) string
func MetadataForNoToolTurn ¶ added in v0.4.5
func MetadataWithDisabledTools ¶ added in v0.4.5
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 NormalizeRuntimeProvider ¶ added in v0.5.0
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 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 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 PrContentOutput ¶ added in v0.4.7
type Provider ¶
type Provider interface {
Runtime() string
Describe() contract.RuntimeDescriptor
StartSession(context.Context, StartSessionRequest) (*contract.RuntimeSession, error)
ResumeSession(context.Context, ResumeSessionRequest) (*contract.RuntimeSession, error)
SendInput(context.Context, SendInputRequest) (*contract.RuntimeEvent, error)
Interrupt(context.Context, string) (*contract.RuntimeEvent, error)
Respond(context.Context, RespondRequest) (*contract.RuntimeEvent, error)
StopSession(context.Context, string) (*contract.RuntimeEvent, error)
ListSessions(context.Context) ([]contract.RuntimeSession, error)
}
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 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 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 StructuredJSONParser ¶ added in v0.5.0
type StructuredResultExtractor ¶ added in v0.4.5
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 (r *TextGenerationRouter) ResolveSelection(selection TextGenerationModelSelection) TextGenerationModelSelection
func (*TextGenerationRouter) Route ¶ added in v0.4.7
func (r *TextGenerationRouter) Route(providerName string) (TextGenerationProvider, error)
func (*TextGenerationRouter) RouteSelection ¶ added in v0.4.7
func (r *TextGenerationRouter) RouteSelection(selection TextGenerationModelSelection) (TextGenerationProvider, error)
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 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" )
Source Files
¶
Click to show internal directories.
Click to hide internal directories.