Documentation
¶
Index ¶
- Constants
- func ApplyOutput(app *Application, out Output, pctx *PlannerContext)
- func CloneOutput(out Output) map[string]any
- func FormatValidationErrors(errs []ValidationError) string
- func OutputBoolPtr(out Output, field string) *bool
- func OutputMap(out Output, field string) map[string]any
- func OutputString(out Output, field string) string
- func OutputStringSlice(out Output, field string) []string
- type Application
- type Contract
- type FileContract
- func (c *FileContract) Apply(app *Application, out Output, pctx *PlannerContext)
- func (c *FileContract) GuidanceDocs(turnID string, out Output, pctx *PlannerContext, meta GuidanceMeta, ...) []GuidanceDoc
- func (c *FileContract) Parse(raw string) (Output, error)
- func (c *FileContract) Schema(ctx context.Context) (map[string]interface{}, error)
- func (c *FileContract) Validate(_ context.Context, out Output, vctx ValidationContext) []ValidationError
- type FileResolver
- type GuidanceDoc
- type GuidanceMeta
- type Output
- type PlannerContext
- type Resolver
- type Service
- type StaticContract
- func (c *StaticContract) Apply(app *Application, out Output, pctx *PlannerContext)
- func (c *StaticContract) GuidanceDocs(turnID string, out Output, pctx *PlannerContext, meta GuidanceMeta, ...) []GuidanceDoc
- func (c *StaticContract) Parse(raw string) (Output, error)
- func (c *StaticContract) Schema(context.Context) (map[string]interface{}, error)
- func (c *StaticContract) Validate(_ context.Context, out Output, vctx ValidationContext) []ValidationError
- type StaticResolver
- type Trigger
- type ValidationContext
- type ValidationError
- type ValidationRule
Constants ¶
View Source
const ( ValidationKindProfilesAllowed = "profiles_allowed" ValidationKindToolBundlesExist = "tool_bundles_exist" ValidationKindTemplateAllowed = "template_allowed" ValidationKindSubset = "subset" )
View Source
const ContextKey = "planner.context"
Variables ¶
This section is empty.
Functions ¶
func ApplyOutput ¶
func ApplyOutput(app *Application, out Output, pctx *PlannerContext)
func CloneOutput ¶
func FormatValidationErrors ¶
func FormatValidationErrors(errs []ValidationError) string
func OutputBoolPtr ¶
func OutputString ¶
func OutputStringSlice ¶
Types ¶
type Application ¶
type Contract ¶
type Contract interface {
Schema(ctx context.Context) (map[string]interface{}, error)
Parse(raw string) (Output, error)
Validate(ctx context.Context, out Output, vctx ValidationContext) []ValidationError
Apply(app *Application, out Output, pctx *PlannerContext)
GuidanceDocs(turnID string, out Output, pctx *PlannerContext, meta GuidanceMeta, errs []ValidationError) []GuidanceDoc
}
type FileContract ¶
type FileContract struct {
// contains filtered or unexported fields
}
func (*FileContract) Apply ¶
func (c *FileContract) Apply(app *Application, out Output, pctx *PlannerContext)
func (*FileContract) GuidanceDocs ¶
func (c *FileContract) GuidanceDocs(turnID string, out Output, pctx *PlannerContext, meta GuidanceMeta, errs []ValidationError) []GuidanceDoc
func (*FileContract) Schema ¶
func (c *FileContract) Schema(ctx context.Context) (map[string]interface{}, error)
func (*FileContract) Validate ¶
func (c *FileContract) Validate(_ context.Context, out Output, vctx ValidationContext) []ValidationError
type FileResolver ¶
type FileResolver struct {
// contains filtered or unexported fields
}
func NewFileResolver ¶
func NewFileResolver(fs afs.Service) *FileResolver
type GuidanceDoc ¶
func BuildGuidanceDocs ¶
func BuildGuidanceDocs(turnID string, out Output, pctx *PlannerContext, meta GuidanceMeta, errs []ValidationError) []GuidanceDoc
type GuidanceMeta ¶
type PlannerContext ¶
type PlannerContext struct {
Trigger Trigger `json:"trigger"`
Attempt int `json:"attempt"`
Data map[string]any `json:"data,omitempty"`
}
func FromQueryInput ¶
func FromQueryInput(input queryInputWithContext) *PlannerContext
FromQueryInput returns the typed planner context for the current turn, or nil when planner mode did not run. It is intentionally tiny so downstream code reads one canonical helper instead of reaching into Context with a raw key.
func NewContext ¶
func NewContext(trigger Trigger, attempt int, out Output) *PlannerContext
type Service ¶
type Service struct{}
func (*Service) Run ¶
func (s *Service) Run(raw string, vctx ValidationContext) (Output, []ValidationError, error)
type StaticContract ¶
type StaticContract struct {
// contains filtered or unexported fields
}
func NewStaticContract ¶
func NewStaticContract(schema map[string]interface{}) *StaticContract
func NewStaticContractWithRules ¶
func NewStaticContractWithRules(schema map[string]interface{}, rules []ValidationRule) *StaticContract
func (*StaticContract) Apply ¶
func (c *StaticContract) Apply(app *Application, out Output, pctx *PlannerContext)
func (*StaticContract) GuidanceDocs ¶
func (c *StaticContract) GuidanceDocs(turnID string, out Output, pctx *PlannerContext, meta GuidanceMeta, errs []ValidationError) []GuidanceDoc
func (*StaticContract) Schema ¶
func (c *StaticContract) Schema(context.Context) (map[string]interface{}, error)
func (*StaticContract) Validate ¶
func (c *StaticContract) Validate(_ context.Context, out Output, vctx ValidationContext) []ValidationError
type StaticResolver ¶
type StaticResolver struct {
// contains filtered or unexported fields
}
func NewStaticResolver ¶
func NewStaticResolver(contract Contract) *StaticResolver
type ValidationContext ¶
type ValidationContext struct {
ProfileRepo *promptrepo.Repository
ToolBundleRepo *toolbundlerepo.Repository
TemplateRepo *tplrepo.Repository
TemplateBundleRepo *tplbundlerepo.Repository
Agent *agentmdl.Agent
}
type ValidationError ¶
type ValidationError struct {
Code string `json:"code,omitempty"`
Field string `json:"field,omitempty"`
Value string `json:"value,omitempty"`
Message string `json:"message,omitempty"`
}
func Validate ¶
func Validate(out Output, vctx ValidationContext) []ValidationError
func ValidateWithRules ¶
func ValidateWithRules(ctx context.Context, out Output, rules []ValidationRule, vctx ValidationContext) []ValidationError
func (ValidationError) Error ¶
func (e ValidationError) Error() string
type ValidationRule ¶
type ValidationRule struct {
Kind string `json:"kind,omitempty"`
Field string `json:"field,omitempty"`
Within string `json:"within,omitempty"`
}
func DefaultValidationRules ¶
func DefaultValidationRules() []ValidationRule
Source Files
¶
Click to show internal directories.
Click to hide internal directories.