gemini

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package gemini provides the Gemini CLI extension adapter.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Adapter

type Adapter struct{}

Adapter converts between canonical Plugin and Gemini CLI extension format.

func (*Adapter) DefaultPaths

func (a *Adapter) DefaultPaths() []string

DefaultPaths returns default file paths for Gemini extension manifest.

func (*Adapter) Marshal

func (a *Adapter) Marshal(plugin *core.Plugin) ([]byte, error)

Marshal converts canonical Plugin to Gemini extension JSON bytes.

func (*Adapter) Name

func (a *Adapter) Name() string

Name returns the adapter identifier.

func (*Adapter) Parse

func (a *Adapter) Parse(data []byte) (*core.Plugin, error)

Parse converts Gemini extension JSON bytes to canonical Plugin.

func (*Adapter) ReadFile

func (a *Adapter) ReadFile(path string) (*core.Plugin, error)

ReadFile reads a Gemini extension JSON file and returns canonical Plugin.

func (*Adapter) WriteFile

func (a *Adapter) WriteFile(plugin *core.Plugin, path string) error

WriteFile writes canonical Plugin to a Gemini extension JSON file.

func (*Adapter) WritePlugin

func (a *Adapter) WritePlugin(plugin *core.Plugin, dir string) error

WritePlugin writes the complete Gemini extension structure to the given directory.

type GeminiExtension

type GeminiExtension struct {
	Name    string `json:"name"`
	Version string `json:"version"`

	// Optional metadata
	Description string `json:"description,omitempty"`
	Author      string `json:"author,omitempty"`
	License     string `json:"license,omitempty"`
	Repository  string `json:"repository,omitempty"`
	Homepage    string `json:"homepage,omitempty"`

	// MCP server configurations
	MCPServers map[string]GeminiMCPServer `json:"mcpServers,omitempty"`

	// Context file name (defaults to GEMINI.md)
	ContextFileName string `json:"contextFileName,omitempty"`

	// Tools to exclude from the model
	ExcludeTools []string `json:"excludeTools,omitempty"`

	// User-configurable settings
	Settings map[string]GeminiSetting `json:"settings,omitempty"`
}

GeminiExtension represents the Gemini CLI gemini-extension.json format. See: https://geminicli.com/docs/extensions/

func FromCanonical

func FromCanonical(p *core.Plugin) *GeminiExtension

FromCanonical creates a GeminiExtension from canonical Plugin.

func (*GeminiExtension) ToCanonical

func (ge *GeminiExtension) ToCanonical() *core.Plugin

ToCanonical converts GeminiExtension to canonical Plugin.

type GeminiMCPServer

type GeminiMCPServer struct {
	Command string            `json:"command"`
	Args    []string          `json:"args,omitempty"`
	Cwd     string            `json:"cwd,omitempty"`
	Env     map[string]string `json:"env,omitempty"`
}

GeminiMCPServer represents an MCP server in Gemini format.

type GeminiSetting

type GeminiSetting struct {
	Type        string `json:"type"` // e.g., "string", "boolean"
	Description string `json:"description,omitempty"`
	Default     string `json:"default,omitempty"`
	EnvVar      string `json:"envVar,omitempty"` // Environment variable name
}

GeminiSetting represents a user-configurable setting.

Jump to

Keyboard shortcuts

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