plugin

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package plugin defines the transport-neutral admission contract for Sahara extensions. It does not load or execute code; WASM and MCP runtimes consume an admitted Manifest only after operator policy has bounded its capabilities.

Index

Constants

View Source
const (
	ManifestSchemaVersion = 1
	MaxManifestBytes      = 256 << 10
	CompatibilityWindow   = 2 // supported minor releases after deprecation
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Admission

type Admission struct {
	Manifest            Manifest
	GrantedCapabilities []Capability
}

Admission is the immutable result passed to a concrete extension runtime.

func Admit

func Admit(manifest Manifest, policy Policy) (Admission, error)

Admit verifies artifact identity, namespace and tool collisions, and the separation between requested and operator-granted capabilities.

type Capability

type Capability string

Capability is an operator-grantable execution capability. Values are deliberately strings so additive capability names do not require a manifest schema bump; an unknown capability remains denied unless policy grants it.

const (
	CapabilityFilesystemRead  Capability = "filesystem.read"
	CapabilityFilesystemWrite Capability = "filesystem.write"
	CapabilityNetwork         Capability = "network"
	CapabilityToolCall        Capability = "tool.call"
)

type Manifest

type Manifest struct {
	SchemaVersion         int          `json:"schema_version"`
	ID                    string       `json:"id"`
	Revision              string       `json:"revision"`
	ArtifactDigest        string       `json:"artifact_digest"`
	RequestedCapabilities []Capability `json:"requested_capabilities,omitempty"`
	Tools                 []Tool       `json:"tools,omitempty"`
	Preauthorized         bool         `json:"preauthorized,omitempty"`
	OverrideCoreTools     bool         `json:"override_core_tools,omitempty"`
}

Manifest is side-effect-free discovery metadata. Unknown JSON fields are ignored for additive compatibility. Privileged flags are represented only so admission can explicitly reject a plugin attempting to self-elevate.

func DecodeManifest

func DecodeManifest(data []byte) (Manifest, error)

DecodeManifest performs lazy, side-effect-free discovery. Unknown fields are intentionally ignored; required fields and security invariants are validated by Admit against operator policy.

type Policy

type Policy struct {
	ArtifactDigest      string
	GrantedCapabilities map[Capability]struct{}
	CoreToolNames       map[string]struct{}
}

Policy is the deployment/Aether ceiling. It is external to the plugin artifact, so embedded metadata cannot broaden it.

type Registry

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

Registry rejects plugin identity and tool collisions across an activated set. It stores only already-admitted manifests and never instantiates code.

func NewRegistry

func NewRegistry() *Registry

func (*Registry) Register

func (r *Registry) Register(admission Admission) error

type Tool

type Tool struct {
	Name        string          `json:"name"`
	Description string          `json:"description,omitempty"`
	InputSchema json.RawMessage `json:"input_schema,omitempty"`
}

Jump to

Keyboard shortcuts

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