stack

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package stack defines the Engine interface and a registry of curated engines. Multiversa orchestrates these engines; it does not author them. See internal/credits for canonical attribution.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotImplemented      = errors.New("not implemented yet")
	ErrAgplConsentRequired = errors.New("AGPL-3.0 disclaimer not acknowledged — MiroFish must be invoked external-only")
)

Functions

func Registry

func Registry() map[string]Engine

Registry returns the canonical map of supported engines.

Types

type CodeGraph

type CodeGraph struct{}

func (CodeGraph) Author

func (CodeGraph) Author() string

func (CodeGraph) Command

func (c CodeGraph) Command(version string) []string

func (CodeGraph) DisplayName

func (CodeGraph) DisplayName() string

func (CodeGraph) ID

func (CodeGraph) ID() string

func (CodeGraph) Install

func (c CodeGraph) Install(version string) error

func (CodeGraph) License

func (CodeGraph) License() string

func (CodeGraph) OptIn

func (CodeGraph) OptIn() bool

func (CodeGraph) Prereq

func (CodeGraph) Prereq() string

func (CodeGraph) Repo

func (CodeGraph) Repo() string

func (CodeGraph) Status

func (c CodeGraph) Status() (Status, error)

func (CodeGraph) Uninstall

func (c CodeGraph) Uninstall() error

type Engine

type Engine interface {
	ID() string
	DisplayName() string
	Author() string
	Repo() string
	License() string
	OptIn() bool

	// Prereq returns the name of the external tool required to install this
	// engine (e.g. "go", "pipx", "pnpm", "docker"). Empty string if no
	// prerequisite is needed. NOTE: Multiversa policy bans npm — pnpm only.
	Prereq() string

	// Command returns the install command as a slice (program + args), to be
	// executed via internal/exec.Run. Multiversa prints this command to the
	// user before running it.
	Command(version string) []string

	// Install is a convenience wrapper around Command. Most callers should
	// use Command + exec.Run directly so they can stream progress.
	Install(version string) error

	// Status checks whether the engine is already present locally.
	Status() (Status, error)

	// Uninstall removes the engine (best-effort).
	Uninstall() error
}

Engine is the contract every curated engine must satisfy.

func List

func List() []Engine

List returns the engines in canonical display order.

func Resolve

func Resolve(id string) (Engine, error)

Resolve returns the Engine for the given id, or an error.

type Engram

type Engram struct{}

func (Engram) Author

func (Engram) Author() string

func (Engram) Command

func (e Engram) Command(version string) []string

func (Engram) DisplayName

func (Engram) DisplayName() string

func (Engram) ID

func (Engram) ID() string

func (Engram) Install

func (e Engram) Install(version string) error

func (Engram) License

func (Engram) License() string

func (Engram) OptIn

func (Engram) OptIn() bool

func (Engram) Prereq

func (Engram) Prereq() string

func (Engram) Repo

func (Engram) Repo() string

func (Engram) Status

func (e Engram) Status() (Status, error)

func (Engram) Uninstall

func (e Engram) Uninstall() error

type GentleAI

type GentleAI struct{}

func (GentleAI) Author

func (GentleAI) Author() string

func (GentleAI) Command

func (g GentleAI) Command(version string) []string

func (GentleAI) DisplayName

func (GentleAI) DisplayName() string

func (GentleAI) ID

func (GentleAI) ID() string

func (GentleAI) Install

func (g GentleAI) Install(version string) error

func (GentleAI) License

func (GentleAI) License() string

func (GentleAI) OptIn

func (GentleAI) OptIn() bool

func (GentleAI) Prereq

func (GentleAI) Prereq() string

func (GentleAI) Repo

func (GentleAI) Repo() string

func (GentleAI) Status

func (g GentleAI) Status() (Status, error)

func (GentleAI) Uninstall

func (g GentleAI) Uninstall() error

type GentlePi

type GentlePi struct{}

func (GentlePi) Author

func (GentlePi) Author() string

func (GentlePi) Command

func (g GentlePi) Command(version string) []string

func (GentlePi) DisplayName

func (GentlePi) DisplayName() string

func (GentlePi) ID

func (GentlePi) ID() string

func (GentlePi) Install

func (g GentlePi) Install(version string) error

func (GentlePi) License

func (GentlePi) License() string

func (GentlePi) OptIn

func (GentlePi) OptIn() bool

func (GentlePi) Prereq

func (GentlePi) Prereq() string

func (GentlePi) Repo

func (GentlePi) Repo() string

func (GentlePi) Status

func (g GentlePi) Status() (Status, error)

func (GentlePi) Uninstall

func (g GentlePi) Uninstall() error

type Graphify

type Graphify struct{}

func (Graphify) Author

func (Graphify) Author() string

func (Graphify) Command

func (g Graphify) Command(version string) []string

func (Graphify) DisplayName

func (Graphify) DisplayName() string

func (Graphify) ID

func (Graphify) ID() string

func (Graphify) Install

func (g Graphify) Install(version string) error

func (Graphify) License

func (Graphify) License() string

func (Graphify) OptIn

func (Graphify) OptIn() bool

func (Graphify) Prereq

func (Graphify) Prereq() string

func (Graphify) Repo

func (Graphify) Repo() string

func (Graphify) Status

func (g Graphify) Status() (Status, error)

func (Graphify) Uninstall

func (g Graphify) Uninstall() error

type MiroFish

type MiroFish struct {
	AgplAcknowledged bool
}

MiroFish is invoked external-only because of AGPL-3.0. Multiversa never embeds, vendors, forks, or `go install`s MiroFish source. We pull the upstream container image and treat it as a separate service.

func (MiroFish) Author

func (MiroFish) Author() string

func (MiroFish) Command

func (m MiroFish) Command(version string) []string

func (MiroFish) DisplayName

func (MiroFish) DisplayName() string

func (MiroFish) ID

func (MiroFish) ID() string

func (MiroFish) Install

func (m MiroFish) Install(version string) error

func (MiroFish) License

func (MiroFish) License() string

func (MiroFish) OptIn

func (MiroFish) OptIn() bool

func (MiroFish) Prereq

func (MiroFish) Prereq() string

func (MiroFish) Repo

func (MiroFish) Repo() string

func (MiroFish) Status

func (m MiroFish) Status() (Status, error)

func (MiroFish) Uninstall

func (m MiroFish) Uninstall() error

type Status

type Status struct {
	Installed bool
	Version   string
	Path      string
}

Status is the local installation state of an engine.

Jump to

Keyboard shortcuts

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