extension

package
v0.0.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Overview

Package extension provides hooks (before/after tool call), skill loading, and MCP tool integration for the pi-go agent.

Index

Constants

This section is empty.

Variables

View Source
var SkillTemplate string

Functions

func BuildAfterToolCallbacks

func BuildAfterToolCallbacks(hooks []HookConfig) []llmagent.AfterToolCallback

BuildAfterToolCallbacks converts HookConfigs with event "after_tool" into ADK AfterToolCallback functions.

func BuildBeforeToolCallbacks

func BuildBeforeToolCallbacks(hooks []HookConfig) []llmagent.BeforeToolCallback

BuildBeforeToolCallbacks converts HookConfigs with event "before_tool" into ADK BeforeToolCallback functions.

func BuildMCPToolsets

func BuildMCPToolsets(servers []MCPServerConfig) ([]tool.Toolset, error)

BuildMCPToolsets creates ADK Toolsets from MCP server configurations. Each server is launched as a subprocess using CommandTransport. Servers that fail to initialize are logged and skipped rather than failing the entire batch.

func LoadBundledSkills added in v0.0.16

func LoadBundledSkills() (map[string][]BundledSkillFile, error)

LoadBundledSkills loads all embedded skill files. Returns a map of skill name → []BundledSkillFile (SKILL.md + supporting files).

Types

type AuditMode added in v0.0.10

type AuditMode string

AuditMode controls how skill loading handles audit findings.

const (
	// AuditBlock blocks skills with critical findings (default).
	AuditBlock AuditMode = "block"
	// AuditWarn loads all skills but logs warnings for critical findings.
	AuditWarn AuditMode = "warn"
	// AuditSkip skips scanning entirely (backward compat for tests).
	AuditSkip AuditMode = "skip"
)

type BundledSkillFile added in v0.0.16

type BundledSkillFile struct {
	SkillName string
	RelPath   string
	Content   []byte
}

BundledSkillFile represents a skill loaded from the embedded filesystem.

type HookConfig

type HookConfig struct {
	// Event is "before_tool" or "after_tool".
	Event string `json:"event"`
	// Command is the shell command to execute.
	Command string `json:"command"`
	// Tools optionally restricts this hook to specific tool names.
	// If empty, the hook fires for all tools.
	Tools []string `json:"tools,omitempty"`
	// Timeout in seconds for hook execution. Default: 10.
	Timeout int `json:"timeout,omitempty"`
}

HookConfig defines a shell command hook that runs before or after tool calls.

type LoadOptions added in v0.0.10

type LoadOptions struct {
	AuditMode AuditMode
}

LoadOptions controls skill loading behavior.

type MCPServerConfig

type MCPServerConfig struct {
	Name    string   `json:"name"`
	Command string   `json:"command"`
	Args    []string `json:"args"`
}

MCPServerConfig matches the config.MCPServer structure.

type Skill

type Skill struct {
	// Name is the skill's identifier (derived from directory name).
	Name string
	// Description is a one-line description from frontmatter.
	Description string
	// Instruction is the markdown body (the system prompt to inject).
	Instruction string
	// Tools lists tool names this skill is allowed to use (from frontmatter).
	Tools []string
	// Source is where the skill came from: "bundled", "user", or "project".
	Source string
}

Skill represents a loaded skill from a SKILL.md file.

func FindSkill

func FindSkill(skills []Skill, name string) (Skill, bool)

FindSkill looks up a skill by name from a slice of loaded skills.

func LoadSkills

func LoadSkills(dirs ...string) ([]Skill, error)

LoadSkills discovers and loads skills from the given directories. It searches for <dir>/<skill-name>/SKILL.md subdirectories. Later directories override earlier ones (project overrides global). Skills with critical audit findings are blocked when AuditMode is "block" (default).

func LoadSkillsWithOptions added in v0.0.10

func LoadSkillsWithOptions(opts LoadOptions, dirs ...string) ([]Skill, error)

LoadSkillsWithOptions discovers and loads skills with configurable audit behavior. Bundled skills (embedded in the binary) are loaded first and can be overridden by user or project skills.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL