Documentation
¶
Overview ¶
Package heimdall provides the Heimdall SLM Management plugin.
Heimdall is the all-seeing guardian of the SLM subsystem, named after the Norse god who watches over Bifröst. Like its namesake, Heimdall coordinates repository awareness and controls access to the cognitive capabilities of NornicDB.
Plugin Type ¶
This is a Heimdall plugin, which means it provides agentic actions and prompt-shaping capabilities that the coding model can use.
Actions Provided ¶
- heimdall_watcher_help - List available coding-agent tools
- heimdall_watcher_status - Get coding-agent status and current capabilities
- heimdall_watcher_repo_map - Summarize repository structure from the graph
- heimdall_watcher_search - Search the graph for relevant code/domain context
- heimdall_watcher_query - Run graph-backed Cypher for targeted investigation
Example Usage ¶
User: "Help me understand this repository before making a change" Heimdall maps to: heimdall_watcher_repo_map Result: Returns repository-focused graph context for the coding model
Building as Plugin ¶
To build as a standalone .so plugin:
go build -buildmode=plugin -o heimdall.so ./plugins/heimdall
Built-in Registration ¶
This plugin is also registered as a built-in plugin, so no .so file is needed.
Index ¶
- Variables
- type WatcherPlugin
- func (p *WatcherPlugin) Actions() map[string]heimdall.ActionFunc
- func (p *WatcherPlugin) Config() map[string]interface{}
- func (p *WatcherPlugin) ConfigSchema() map[string]interface{}
- func (p *WatcherPlugin) Configure(settings map[string]interface{}) error
- func (p *WatcherPlugin) Description() string
- func (p *WatcherPlugin) Health() heimdall.SubsystemHealth
- func (p *WatcherPlugin) Initialize(ctx heimdall.SubsystemContext) error
- func (p *WatcherPlugin) Metrics() map[string]interface{}
- func (p *WatcherPlugin) Name() string
- func (p *WatcherPlugin) PostExecute(ctx *heimdall.PostExecuteContext)
- func (p *WatcherPlugin) PreExecute(ctx *heimdall.PreExecuteContext, done func(heimdall.PreExecuteResult))
- func (p *WatcherPlugin) PrePrompt(ctx *heimdall.PromptContext) error
- func (p *WatcherPlugin) RecentEvents(limit int) []heimdall.SubsystemEvent
- func (p *WatcherPlugin) Shutdown() error
- func (p *WatcherPlugin) Start() error
- func (p *WatcherPlugin) Status() heimdall.SubsystemStatus
- func (p *WatcherPlugin) Stop() error
- func (p *WatcherPlugin) Summary() string
- func (p *WatcherPlugin) Synthesize(ctx *heimdall.SynthesisContext, done func(response string))
- func (p *WatcherPlugin) Type() string
- func (p *WatcherPlugin) Version() string
Constants ¶
This section is empty.
Variables ¶
var Plugin heimdall.HeimdallPlugin = &WatcherPlugin{}
Plugin is the exported plugin variable. For .so plugins, export as: var Plugin heimdall.HeimdallPlugin = &WatcherPlugin{}
Functions ¶
This section is empty.
Types ¶
type WatcherPlugin ¶
type WatcherPlugin struct {
// contains filtered or unexported fields
}
WatcherPlugin implements heimdall.HeimdallPlugin for SLM management. The Watcher is Heimdall's built-in coding agent coordinator.
This plugin also demonstrates autonomous action invocation: - Shapes prompts with repository-aware context - Exposes graph-backed coding actions to the model - Uses HeimdallInvoker to synthesize action results into coding guidance - Maintains durable summarized conversation state for long context windows
func (*WatcherPlugin) Actions ¶
func (p *WatcherPlugin) Actions() map[string]heimdall.ActionFunc
func (*WatcherPlugin) Config ¶
func (p *WatcherPlugin) Config() map[string]interface{}
func (*WatcherPlugin) ConfigSchema ¶
func (p *WatcherPlugin) ConfigSchema() map[string]interface{}
func (*WatcherPlugin) Configure ¶
func (p *WatcherPlugin) Configure(settings map[string]interface{}) error
func (*WatcherPlugin) Description ¶
func (p *WatcherPlugin) Description() string
func (*WatcherPlugin) Health ¶
func (p *WatcherPlugin) Health() heimdall.SubsystemHealth
func (*WatcherPlugin) Initialize ¶
func (p *WatcherPlugin) Initialize(ctx heimdall.SubsystemContext) error
func (*WatcherPlugin) Metrics ¶
func (p *WatcherPlugin) Metrics() map[string]interface{}
func (*WatcherPlugin) Name ¶
func (p *WatcherPlugin) Name() string
func (*WatcherPlugin) PostExecute ¶
func (p *WatcherPlugin) PostExecute(ctx *heimdall.PostExecuteContext)
func (*WatcherPlugin) PreExecute ¶
func (p *WatcherPlugin) PreExecute(ctx *heimdall.PreExecuteContext, done func(heimdall.PreExecuteResult))
func (*WatcherPlugin) PrePrompt ¶
func (p *WatcherPlugin) PrePrompt(ctx *heimdall.PromptContext) error
func (*WatcherPlugin) RecentEvents ¶
func (p *WatcherPlugin) RecentEvents(limit int) []heimdall.SubsystemEvent
func (*WatcherPlugin) Shutdown ¶
func (p *WatcherPlugin) Shutdown() error
func (*WatcherPlugin) Start ¶
func (p *WatcherPlugin) Start() error
func (*WatcherPlugin) Status ¶
func (p *WatcherPlugin) Status() heimdall.SubsystemStatus
func (*WatcherPlugin) Stop ¶
func (p *WatcherPlugin) Stop() error
func (*WatcherPlugin) Summary ¶
func (p *WatcherPlugin) Summary() string
func (*WatcherPlugin) Synthesize ¶
func (p *WatcherPlugin) Synthesize(ctx *heimdall.SynthesisContext, done func(response string))
func (*WatcherPlugin) Type ¶
func (p *WatcherPlugin) Type() string
func (*WatcherPlugin) Version ¶
func (p *WatcherPlugin) Version() string