Documentation
¶
Index ¶
- Constants
- Variables
- func AdoptOrResumeSession(ctx context.Context, controller SessionController, runtime string, ...) (*contract.RuntimeSession, error)
- func FindSessionByIDOrProviderID(sessions []contract.RuntimeSession, sessionID string, providerSessionID string) (*contract.RuntimeSession, bool)
- func InferTextGenerationProvider(model string) string
- func MetadataForNoToolTurn(metadata map[string]any) map[string]any
- func MetadataWithDisabledTools(metadata map[string]any, tools ...string) map[string]any
- type BranchNameInput
- type BranchNameOutput
- type CommitMessageInput
- type CommitMessageOutput
- type ModelOptions
- type PrContentInput
- type PrContentOutput
- type Provider
- type RespondRequest
- type ResumeSessionRequest
- type RuntimeMetadata
- type SendInputRequest
- type SessionController
- type StartSessionRequest
- 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
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 MetadataForNoToolTurn ¶ added in v0.4.5
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.
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 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 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
Source Files
¶
Click to show internal directories.
Click to hide internal directories.