Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Expansion ¶ added in v0.1.7
type Expansion struct {
Mode string `yaml:"mode" json:"mode"`
Model string `yaml:"model,omitempty" json:"model,omitempty"`
MaxTokens int `yaml:"maxTokens,omitempty" json:"maxTokens,omitempty"`
}
Expansion configures optional sidecar LLM synthesis at delegation time.
type MCPManager ¶ added in v0.1.7
type MCPManager interface {
Get(ctx context.Context, convID, serverName string) (mcpclient.Interface, error)
}
MCPManager is the subset of *mcpmgr.Manager used by Render. *mcpmgr.Manager satisfies this interface without any changes.
type MCPSource ¶ added in v0.1.7
type MCPSource struct {
Server string `yaml:"server" json:"server"`
Prompt string `yaml:"prompt" json:"prompt"`
Args map[string]string `yaml:"args,omitempty" json:"args,omitempty"`
}
MCPSource fetches instructions from an MCP server prompt.
type Message ¶
type Message struct {
Role string `yaml:"role" json:"role"`
Text string `yaml:"text,omitempty" json:"text,omitempty"`
URI string `yaml:"uri,omitempty" json:"uri,omitempty"`
}
Message is a single role+content instruction, aligned with MCP PromptMessage.
type Profile ¶ added in v0.1.7
type Profile struct {
ID string `yaml:"id" json:"id"`
Name string `yaml:"name,omitempty" json:"name,omitempty"`
Description string `yaml:"description,omitempty" json:"description,omitempty"`
AppliesTo []string `yaml:"appliesTo,omitempty" json:"appliesTo,omitempty"`
Messages []Message `yaml:"messages,omitempty" json:"messages,omitempty"`
Instructions string `yaml:"instructions,omitempty" json:"instructions,omitempty"`
MCP *MCPSource `yaml:"mcp,omitempty" json:"mcp,omitempty"`
// ToolBundles lists the tool-bundle ids that are activated for the worker
// when this profile is applied. Runtime enforcement, not access control.
ToolBundles []string `yaml:"toolBundles,omitempty" json:"toolBundles,omitempty"`
PreferredTools []string `yaml:"preferredTools,omitempty" json:"preferredTools,omitempty"`
Template string `yaml:"template,omitempty" json:"template,omitempty"`
Resources []string `yaml:"resources,omitempty" json:"resources,omitempty"`
Expansion *Expansion `yaml:"expansion,omitempty" json:"expansion,omitempty"`
}
Profile is a scenario configuration unit pairing instruction messages, tool bundles, and an output template.
func (*Profile) EffectiveMessages ¶ added in v0.1.7
EffectiveMessages returns the messages to render. Messages takes priority over Instructions. Returns nil for MCP-only profiles.
func (*Profile) Render ¶ added in v0.1.7
func (p *Profile) Render(ctx context.Context, mgr MCPManager, opts *RenderOptions) ([]Message, error)
Render resolves the profile's instruction source and returns []Message.
Source priority:
- If p.MCP is set: call the MCP server's GetPrompt; convert the result.
- If p.Messages is set: render each message (URI loaded, text templated).
- If p.Instructions is set: wrap as a single system message.
mgr may be nil; MCP-sourced profiles will return an error in that case. opts may be nil; defaults are applied.
type RenderOptions ¶ added in v0.1.7
type RenderOptions struct {
// ConversationID is used to retrieve the MCP client from the manager.
ConversationID string
// Binding is an arbitrary key-value map rendered into message text and
// into MCP arg values via Go's text/template engine.
Binding map[string]interface{}
// FS is used to load messages whose source is a URI.
// When nil, afs.New() is used.
FS afs.Service
}
RenderOptions carries optional context needed during rendering.