Documentation
¶
Index ¶
- Constants
- Variables
- func ParseSQLSchema(app *apps.Instance, schema string) (*daemon.SQLCPlugin_Catalog, error)
- type AIError
- type AINotification
- type AINotifier
- type AISessionID
- type AIStreamMessage
- type AIStreamUpdate
- type AITask
- type AIUpdateType
- type BaseAIUpdateType
- type CodeType
- type Endpoint
- type EndpointUpdate
- type Error
- type ErrorUpdate
- type LocalEndpointUpdate
- type Manager
- func (m *Manager) DefineEndpoints(ctx context.Context, appSlug string, sessionID AISessionID, prompt string, ...) (*AITask, error)
- func (m *Manager) ModifySystemDesign(ctx context.Context, appSlug string, sessionID AISessionID, ...) (*AITask, error)
- func (m *Manager) ParseCode(ctx context.Context, services []Service, app *apps.Instance) (*SyncResult, error)
- func (m *Manager) PreviewFiles(ctx context.Context, services []Service, app *apps.Instance) (*PreviewFilesResponse, error)
- func (m *Manager) ProposeSystemDesign(ctx context.Context, appSlug, prompt string, md *meta.Data, ...) (*AITask, error)
- func (m *Manager) UpdateCode(ctx context.Context, services []Service, app *apps.Instance, overwrite bool) (*SyncResult, error)
- func (m *Manager) WriteFiles(ctx context.Context, services []Service, app *apps.Instance) (*WriteFilesResponse, error)
- type PathParamUpdate
- type PathSegment
- type PathSegments
- type Pos
- type PreviewFile
- type PreviewFilesResponse
- type Result
- type SegmentType
- type SegmentValueType
- type Service
- type ServiceInput
- type ServiceUpdate
- type SessionUpdate
- type SyncResult
- type TaskMessage
- type TitleUpdate
- type Type
- type TypeField
- type TypeFieldUpdate
- type TypeUpdate
- type ValidationError
- type VisibilityType
- type WriteFilesResponse
Constants ¶
View Source
const ( PathDocPrefix = "Path Parameters" ErrDocPrefix = "Errors" )
Variables ¶
View Source
var ErrorCodeMap = map[string]int64{
"ai_task_limit_reached": 100,
}
Functions ¶
func ParseSQLSchema ¶
ParseSQLSchema uses SQLC to parse the migration files for an encore database and returns the parsed catalog
Types ¶
type AINotification ¶
type AINotification struct {
SubscriptionID string `json:"subscriptionId,omitempty"`
Value any `json:"value,omitempty"`
Error *AIError `json:"error,omitempty"`
Finished bool `json:"finished,omitempty"`
}
AINotification is a wrapper around messages and errors from the encore platform ai service
type AINotifier ¶
type AINotifier func(context.Context, *AINotification) error
type AISessionID ¶
type AISessionID string
type AIStreamMessage ¶
type AIStreamMessage struct {
Value TaskMessage
Error string
Finished bool
}
type AIStreamUpdate ¶
type AIStreamUpdate = Result[AIUpdateType]
type AITask ¶
type AITask struct {
SubscriptionID string
// contains filtered or unexported fields
}
type AIUpdateType ¶
type AIUpdateType interface {
IsAIUpdateType()
}
type BaseAIUpdateType ¶
type BaseAIUpdateType struct {
Type string `graphql:"__typename" json:"type"`
}
func (BaseAIUpdateType) IsAIUpdateType ¶
func (b BaseAIUpdateType) IsAIUpdateType()
type Endpoint ¶
type Endpoint struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Doc string `json:"doc"`
Method string `json:"method"`
Visibility VisibilityType `json:"visibility"`
Path PathSegments `json:"path"`
RequestType string `json:"requestType,omitempty"`
ResponseType string `json:"responseType,omitempty"`
Errors []*Error `json:"errors,omitempty"`
Types []*Type `json:"types,omitempty"`
Language string `json:"language,omitempty"`
TypeSource string `json:"typeSource,omitempty"`
EndpointSource string `json:"endpointSource,omitempty"`
}
type EndpointUpdate ¶
type EndpointUpdate struct {
BaseAIUpdateType
Service string `json:"service,omitempty"`
Name string `json:"name,omitempty"`
Doc string `json:"doc,omitempty"`
Method string `json:"method,omitempty"`
Visibility VisibilityType `json:"visibility,omitempty"`
Path []PathSegment `json:"path,omitempty"`
RequestType string `json:"requestType,omitempty"`
ResponseType string `json:"responseType,omitempty"`
Errors []string `json:"errors,omitempty"`
}
type ErrorUpdate ¶
type ErrorUpdate struct {
BaseAIUpdateType
Code string `json:"code,omitempty"`
Doc string `json:"doc,omitempty"`
Service string `json:"service,omitempty"`
Endpoint string `json:"endpoint,omitempty"`
}
type LocalEndpointUpdate ¶
type Manager ¶
type Manager struct{}
Manager exposes the ai functionality to the local dashboard
func NewAIManager ¶
func NewAIManager() *Manager
func (*Manager) DefineEndpoints ¶
func (*Manager) ModifySystemDesign ¶
func (*Manager) PreviewFiles ¶
func (*Manager) ProposeSystemDesign ¶
func (*Manager) UpdateCode ¶
func (*Manager) WriteFiles ¶
type PathParamUpdate ¶
type PathParamUpdate struct {
BaseAIUpdateType
Service string `json:"service,omitempty"`
Endpoint string `json:"endpoint,omitempty"`
Param string `json:"param,omitempty"`
Doc string `json:"doc,omitempty"`
}
type PathSegment ¶
type PathSegment struct {
Type SegmentType `json:"type,omitempty"`
Value *string `json:"value,omitempty"`
ValueType *SegmentValueType `json:"valueType,omitempty"`
Doc string `graphql:"-" json:"doc,omitempty"`
}
func (PathSegment) DocItem ¶
func (p PathSegment) DocItem() (string, string)
type PathSegments ¶
type PathSegments []PathSegment
func (PathSegments) Render ¶
func (p PathSegments) Render() (docPath string, goParams []string)
type PreviewFile ¶
type PreviewFilesResponse ¶
type PreviewFilesResponse struct {
Files []PreviewFile `json:"files"`
}
type SegmentType ¶
type SegmentType string
const ( SegmentTypeLiteral SegmentType = "literal" SegmentTypeParam SegmentType = "param" SegmentTypeWildcard SegmentType = "wildcard" SegmentTypeFallback SegmentType = "fallback" )
type SegmentValueType ¶
type SegmentValueType string
const SegmentValueTypeString SegmentValueType = "string"
type Service ¶
type Service struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Doc string `json:"doc,omitempty"`
Endpoints []*Endpoint `json:"endpoints,omitempty"`
}
func (Service) GetEndpoints ¶
func (Service) GraphQL ¶
func (s Service) GraphQL() ServiceInput
GraphQL scrubs data that is not needed for the graphql client
type ServiceInput ¶
type ServiceInput Service
ServiceInput is the graphql input type for our queries the graphQL client we use requires the type name to match the graphql type
type ServiceUpdate ¶
type ServiceUpdate struct {
BaseAIUpdateType
Name string `json:"name,omitempty"`
Doc string `json:"doc,omitempty"`
}
type SessionUpdate ¶
type SessionUpdate struct {
BaseAIUpdateType
Id AISessionID
}
type SyncResult ¶
type SyncResult struct {
Services []Service `json:"services"`
Errors []ValidationError `json:"errors"`
}
type TaskMessage ¶
type TaskMessage struct {
Type string `graphql:"__typename"`
ServiceUpdate `graphql:"... on ServiceUpdate"`
TypeUpdate `graphql:"... on TypeUpdate"`
TypeFieldUpdate `graphql:"... on TypeFieldUpdate"`
ErrorUpdate `graphql:"... on ErrorUpdate"`
EndpointUpdate `graphql:"... on EndpointUpdate"`
SessionUpdate `graphql:"... on SessionUpdate"`
TitleUpdate `graphql:"... on TitleUpdate"`
PathParamUpdate `graphql:"... on PathParamUpdate"`
}
func (*TaskMessage) GetValue ¶
func (u *TaskMessage) GetValue() AIUpdateType
type TitleUpdate ¶
type TitleUpdate struct {
BaseAIUpdateType
Title string
}
type Type ¶
type TypeFieldUpdate ¶
type TypeFieldUpdate struct {
BaseAIUpdateType
Service string `json:"service,omitempty"`
Endpoint string `json:"endpoint,omitempty"`
Struct string `json:"struct,omitempty"`
Name string `json:"name,omitempty"`
Type string `json:"type,omitempty"`
Doc string `graphql:"mdoc: doc" json:"doc,omitempty"`
}
type TypeUpdate ¶
type TypeUpdate struct {
BaseAIUpdateType
Service string `json:"service,omitempty"`
Endpoint string `json:"endpoint,omitempty"`
Name string `json:"name,omitempty"`
Doc string `graphql:"mdoc: doc" json:"doc,omitempty"`
}
type ValidationError ¶
type ValidationError struct {
Service string `json:"service"`
Endpoint string `json:"endpoint"`
CodeType CodeType `json:"codeType"`
Message string `json:"message"`
Start *Pos `json:"start,omitempty"`
End *Pos `json:"end,omitempty"`
}
ValidationError is a simplified ErrInSrc to return to the dashboard
type VisibilityType ¶
type VisibilityType string
const ( VisibilityTypePublic VisibilityType = "public" VisibilityTypePrivate VisibilityType = "private" VisibilityTypeAuth VisibilityType = "auth" )
type WriteFilesResponse ¶
Click to show internal directories.
Click to hide internal directories.