plugin

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CompareVersions

func CompareVersions(a, b string) int

CompareVersions compares two semver strings Returns -1 if a < b, 0 if a == b, 1 if a > b

Types

type Input

type Input struct {
	Prism   PrismContext      `json:"prism"`
	Session SessionContext    `json:"session"`
	Config  map[string]any    `json:"config"`
	Colors  map[string]string `json:"colors"`
}

Input is the JSON structure sent to plugins via stdin

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager handles plugin discovery, execution, and management

func NewManager

func NewManager() *Manager

NewManager creates a new plugin manager

func (*Manager) Add

func (m *Manager) Add(url string) error

Add installs a plugin from a URL (supports both binary and script plugins)

func (*Manager) CheckUpdates

func (m *Manager) CheckUpdates()

CheckUpdates checks all plugins for available updates

func (*Manager) Discover

func (m *Manager) Discover() ([]Plugin, error)

Discover finds all installed plugins (both scripts and binaries)

func (*Manager) Execute

func (m *Manager) Execute(p Plugin, input Input, timeout time.Duration) (string, error)

Execute runs a plugin and returns its output

func (*Manager) List

func (m *Manager) List(nativePlugins []NativePluginInfo)

List prints all installed plugins (native + community)

func (*Manager) Remove

func (m *Manager) Remove(name string) error

Remove uninstalls a plugin (handles both binaries and scripts)

func (*Manager) Update

func (m *Manager) Update(target string) error

Update updates a specific plugin or all plugins

type Metadata

type Metadata struct {
	Name        string `json:"name"`
	Version     string `json:"version"`
	Description string `json:"description"`
	Author      string `json:"author"`
	Source      string `json:"source"`
	UpdateURL   string `json:"update_url"`
}

Metadata represents plugin header metadata parsed from @-prefixed comments

func ParseMetadata

func ParseMetadata(path string) (Metadata, error)

ParseMetadata extracts metadata from plugin header comments

type NativePluginInfo

type NativePluginInfo struct {
	Name    string
	Version string
}

NativePluginInfo describes a built-in plugin for listing

type Plugin

type Plugin struct {
	Name     string
	Path     string
	Metadata Metadata
	IsBinary bool // true for compiled binaries, false for scripts
}

Plugin represents a discovered plugin

type PrismContext

type PrismContext struct {
	Version    string `json:"version"`
	ProjectDir string `json:"project_dir"`
	CurrentDir string `json:"current_dir"`
	SessionID  string `json:"session_id"`
	IsIdle     bool   `json:"is_idle"`
}

PrismContext provides context about the Prism environment

type SessionContext

type SessionContext struct {
	Model        string  `json:"model"`
	ContextPct   int     `json:"context_pct"`
	CostUSD      float64 `json:"cost_usd"`
	LinesAdded   int     `json:"lines_added"`
	LinesRemoved int     `json:"lines_removed"`
}

SessionContext provides context about the Claude session

Jump to

Keyboard shortcuts

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